×
=0) { let js = text.slice(pos1, pos2); + '<\/' + "script" + '>'; arrText.push(js); // next pos1 = pos2; continue; } } } break; } return arrText; } function OpenDialog(parentDiv, urlContent) { parentDiv = document.getElementById('modal-background'); // new !!!!!!! parentDiv.appendChild(document.getElementById('modal-template')); document.getElementById('modal-background').style.display = "block"; document.getElementById('modal-template').style.display = "flex"; // !!!!! document.getElementById('modal-body').innerHTML = ""; post_url(urlContent, "", function(text_from_server) { var element = document.getElementById('modal-body'); element.innerHTML = text_from_server; // add scripts var arrJSText = get_scripts(text_from_server); for (var i=0; i
dir.by
Праздники ...
Праздники ...
День Святого Валентина (14 Февраля)
Концерты, выставки, цирки ...
Концерты, выставки, цирки ...
Спектакль "Дурочка" г. Минск 9 января, 25 февраля 2026
Афишу
Спорт занятия ...
Спорт занятия ...
Фитнес (аэробика, пилатес, и другие тренировки)
Спорт занятие
Компьютеры, игры, программирование
Компьютеры, игры, программирование
Объявления ...
Объявления ...
Промышленный шредер МСК-1200
Объявление
Форум (ваши вопросы, обсуждение)
Форум (ваши вопросы, обсуждение)
Search
Programming, development, testing
→
ASP.NET MVC (web сайт на архитектуре Model-View-Controller)
→
Entity Framework в приложении ASP.NET MVC. Используем Code First (пишем c# код, а таблицы в базе данных создаются сами)
Looked at
7904
times
Entity Framework в приложении ASP.NET MVC (Code First)
last updated: 13 January 2019
Entity Framework
предоставляет возможность работы с
Базой данных
через
C#
код.
Рассмотрим подход
Code First
(пишем
C#
код, а таблицы в
Базе данных
создаются автоматически по
C#
коду).
План (7 шагов)
Шаг 1.
Создаем новый ASP.NET MVC проект
Шаг 2.
Добавляем библиотеку Entity Framework используя NuGet
Шаг 3.
Установка Microsoft SQL Server (для хранения базы данных)
Шаг 4.
Создаем соединиение с Базой данных Microsoft SQL Server в файле Web.config
Шаг 5.
Добавим класс Book и класс UserContext для работы с Базой данных
Шаг 6.
Запускаем ASP.NET MVC приложение
Шаг 7.
Проверяем как создалась наша База данных и таблица в Microsoft SQL Server
Шаг 1. Создаем новый ASP.NET MVC проект
Создаем
новое приложение ASP.NET MVC ...
Шаг 2. Добавляем библиотеку Entity Framework используя NuGet
Нажимаем в меню:
Tools
→
NuGet Package Manager
→
Manage NuGet Packages for Solution...
Нажимаем кнопку "Install"
Нажимаем кнопку "OK"
Hide что подключилось << ...
Let's look at что подключилось >> ...
В проект в
папку References
добавились packages:
•
EntityFramework
•
EntityFramework.SqlServer
В файл Web.config добавились новые строчки
выделенныы
зеленым цветом
Файл:
Web.config
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http:
//go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http:
//go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
Шаг 3. Установка Microsoft SQL Server (для хранения базы данных)
Мы будем использовать
Microsoft SQL Server
для хранения базы данных.
Если у Вас не установлена нужно
установить Microsoft SQL Server 2012...
(или другую версию)
Шаг 4. Создаем соединиение с Базой данных Microsoft SQL Server в файле Web.config
Добавляем соединение
<connectionStrings>...</connectionStrings>
к Базе данных в файле
Web.config
Новые добавленные строчки помеченные
синим
Файл:
Web.config
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http:
//go.microsoft.com/fwlink/?LinkId=301880
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http:
//go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<connectionStrings>
<add name="MyConnection1" connectionString="Data Source=EVGENI\MSSQLSERVER2012;Initial Catalog=MyDatabase1;Integrated Security=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
На заметку!
•
Initial Catalog=
MyDatabase1
это название базы данных. Если такое название не существует то новая база данных будет создана.
•
name="
MyConnection1
"
пишем любой текст это имя соединения. Это имя соединения будем использовать в C# классах.
•
Data Source=
EVGENIMSSQLSERVER2012
это имя сервера базы данных (SQL Server name). Сервер базы данных может находится локально или на другом компьютере. Имя сервера базы данных появляется при открытии
SQL Server Management Studio
(на картинке нарисовано).
Читать подробнее
создание <connectionStrings> в .config файле...
Шаг 5. Добавим класс Book и класс UserContext для работы с Базой данных
Нажмем правой клавишей мыши на папку
"Models"
→
Add
→
New Item
Для подключения к
базе данных
через
Entity Framework
, нам нужен посредник -
контекст данных
.
Контекст данных
представляет собой класс, производный от класса
DbContext
.
Контекст данных
содержит одно или несколько свойств типа
DbSet
, где
T
представляет тип объекта, хранящегося в
базе данных
Класс
UserContext
это наш
контекст данных
Наш
контекст данных
создаст базу данных
MyDatabase1
(если ее не существует)
Класс
Book
создаст таблицу
Books
и заполнит данными.
Новые добавленные строчки помеченные
синим
C#
Файл:
UserContext.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using System.Data.Entity;
namespace
WebApplication2.Models
{
public
class
Book
{
public
int
Id { get; set; }
public
string
Name { get; set; }
public
int
Price { get; set; }
}
public
class
UserContext
: DbContext
{
public
UserContext() : base(
"MyConnection1"
)
{
}
public
DbSet<Book> Books { get; set; }
}
}
В файле Controllers\
HomeController.cs
напишем код создание и заполнение базы данных.
C#
Файл:
HomeController.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.Mvc;
using WebApplication2.Models;
namespace
WebApplication2.Controllers
{
public
class
HomeController
: Controller
{
// GET: Home
public
ActionResult Index()
{
// add data
using(UserContext db =
new
UserContext())
{
// создаем объекты Book
Book book1 =
new
Book { Name =
"Граф Монтекристо"
, Price = 123 };
Book book2 =
new
Book { Name =
"Властелин колец"
, Price = 267 };
Book book3 =
new
Book { Name =
"Три кота"
, Price = 125 };
// добавляем объекты Book в контекст данных
db.Books.Add(book1);
db.Books.Add(book2);
db.Books.Add(book3);
// сохраняем контекст данных в базу данных
db.SaveChanges();
}
return
View();
}
}
}
Шаг 6. Запускаем ASP.NET MVC приложение
Нажимаем вверху на зеленый треугольник
Приложение запустилось
После запуска приложения, выполнится
C#
код который:
• создаст Базу данных
"MyDatabase1"
(если такой нет)
• создаст таблицу
Books
(если такой нет)
• добавит значения в таблицу
Books
Name="Граф Монтекристо" Price=123
Name="Властелин колец" Price=267
Name="Три кота" Price=125
Шаг 7. Проверяем как создалась наша База данных и таблица в Microsoft SQL Server
Note!
You must have
Microsoft SQL Server
installed. If you don't have it, then
need to download and install
Microsoft SQL Server
...
Note!
You must have
SQL Server Management Studio
installed. If you don't have it, then
need to download and install
SQL Server Management Studio
...
To open
SQL Server Management Studio
, we click on the icon on the desktop:
A window will appear and press the
"Connect"
button:
After 20 seconds, we will see that
SQL Server Management Studio
is loaded:
Смотрим значения в таблице в SQL Server Management Studio
Шаг 1.
Открываем SQL Server Management Studio
Note!
You must have
Microsoft SQL Server
installed. If you don't have it, then
need to download and install
Microsoft SQL Server
...
Note!
You must have
SQL Server Management Studio
installed. If you don't have it, then
need to download and install
SQL Server Management Studio
...
To open
SQL Server Management Studio
, we click on the icon on the desktop:
A window will appear and press the
"Connect"
button:
After 20 seconds, we will see that
SQL Server Management Studio
is loaded:
Шаг 2.
Смотрим значения в таблице
Раскрываем базу данных
MyDatabase1
Нажимаем правой клавишей мыши на таблице
dbo.Books
и нажимаем
Select Top 1000 Rows
Смотрим на значения:
Видим, что автоматически:
• создалась новая база данных
MyDatabase1
(если такой не было)
• создалась новая таблица
Books
(если такой не было)
• в таблице
Books
добавились значения
Таблица
Books
Id
Name
Price
1
Граф Монтекристо
123
2
Властелин колец
267
3
Три кота
125
На заметку!
Если запустим программу второй раз, то увидим что в таблице
Books
уже
6 строчек
.
Если запустим программу третий раз, то увидим что в таблице
Books
9 строчек
.
Если запустим программу четвертый раз, то увидим что в таблице
Books
12 строчек
.
То есть если таблица
Books
существет, то
при каждом запуске программы
добавляются
3 строчки
.
← Previous topic
Объект Ajax (это класс AjaxExtensions) в ASP.NET МVС
Next topic →
Что такое аутентификация (login/register/logout) в ASP.NET MVC ?
Your feedback ... Comments ...
Your Name
Your comment
(www links can only be added by a logged-in user)
+ Picture
Экскурсии по Москве: пешеходные, автобусные и речные прогулки на любой вкус
Объявления
Объявления
•
Что такое MVC в ASP.NET ?
•
Создаем новое приложение ASP.NET MVC
Контроллер (Controller)
•
Передаем данные из контроллера в представление в ASP.NET MVC. Используем ViewBag, ViewData, TempData, Model (строго типизированное представление)
Представление (View)
•
Что такое View (представление) и операторы Razor в ASP.NET MVC
•
Создаем переменную и выводим на экран во View в ASP.NET MVC
•
@using внутри View в ASP.NET MVC
•
@foreach(var item in arr) {...} внутри View в ASP.NET MVC
•
@DateTime.Now внутри View в ASP.NET MVC
•
Как узнать имя контроллера внутри View в ASP.NET MVC
•
Отображаем [DateTime | только Date | только Time] в нужном формате в ASP.NET MVC
Разновидности представлений (View)
•
Строго типизированное представление (Strongly-typed-view) в ASP.NET MVC
...
•
Мастер представление (Master View) с использованием @RenderBody() в ASP.NET MVC
•
Мастер представление (Master View) с использованием @RenderBody() и дополнительных секций @RenderSection в ASP.NET MVC
...
•
Частичное представление (Partial View) в ASP.NET MVC. Встраиваем частичное представление @Html.Partial("My1") и @{ Html.RenderPartial("My1");}
•
При нажатии submit внутри partial view происходит ajax вызов метода controller. Метод controller должен возвращать PartialView(model) | ASP.NET MVC
...
•
Строго типизированное частичное представление (Strongly-typed partial view) в ASP.NET MVC
Создаем папку ViewModels. Это хороший стиль программирования для передачи данных из Controller во View
•
Создаем папку ViewModels. Создаем свой класс в папке ViewModels. Это хороший стиль программирования для передачи данных из Controller во View. Web приложение ASP.NET MVC
Атрибуты. Используем атрибуты во ViewModels(чтобы показать кнопки, combo в представлении). Используем атрибуты в Controller (чтобы улучшить методы)
•
Аттрибут [Display(Name = "...")] описывается в C# классе и используется в @Html.LabelFor, @Html.DisplayNameFor в ASP.NET MVC
•
Аттрибут [Required(ErrorMessage = "Пожалуйста, введите название")] описывается для свойства в C# классе и требует чтобы свойство было заполнено, если не заполнено на экране ошибка ErrorMessage в ASP.NET MVC
•
Аттрибут [Remote("IsValidAuthor", "Home", ErrorMessage = "Enter correct author of book")] описывается для свойства в C# классе и проверяет это свойство на правильность на сервере через метод IsValidAuthor в conroller Home, если метод возвращает false, то на экране будет ошибка ErrorMessage в ASP.NET MVC
•
Аттрибут [HiddenInput(DisplayValue = false)] описывается в C# классе и используется в @Html.HiddenFor в ASP.NET MVC
Маршрутизация
Ссылки и перенаправления в представлении
•
@Html.ActionLink внутри View в ASP.NET MVC
•
@Html.RouteLink внутри View в ASP.NET MVC
•
@Url.Action внутри View в ASP.NET MVC
•
@Url.RouteUrl внутри View в ASP.NET MVC
•
@Url.Content внутри View в ASP.NET MVC
Bootstrap в MVC
•
Добавляем и подключаем Bootstrap (css, js файлы) в ASP.NET MVC проект
JQuery в МVС
•
Подключаем JQuery в ASP.NET MVC проект
•
С помощью JQuery получаем содержимое View (представления) в ASP.NET MVC. Пример: $.get("/Home/Index", function (data) {...}) ...
Класс AjaxExtensions в МVС (асинхронное получение данных)
•
Подключаем jQuery & AJAX в ASP.NET MVC проект
•
С помощью Ajax.ActionLink получаем содержимое View (представления) и вставляем в div в ASP.NET MVC
•
Объект Ajax (это класс AjaxExtensions) в ASP.NET МVС
База данных (Entity Framework) в ASP.NET MVC
•
Entity Framework в приложении ASP.NET MVC. Используем Code First (пишем c# код, а таблицы в базе данных создаются сами)
Аутентификация (login/register/logout)
•
Что такое аутентификация (login/register/logout) в ASP.NET MVC ?
•
Пример: Аутентификация (login/register/logout) в ASP.NET MVC используя аутентификацию форм FormsAuthentication.SetAuthCookie(model.Name, true);
Авторизация (admin/user/...)
•
Что такое авторизация (admin/user/...) в ASP.NET MVC ?
•
Пример: Авторизация (admin/user/...) в ASP.NET MVC используя провайдер ролей RoleProvider
Пишем приложение "Планирование дел, задач" в ASP.NET MVC
•
Создаем пустое приложение "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
•
Добавляем библиотеки Bootstrap & jQuery в приложение "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
•
Создаем мастер-представление (главное меню & логин кнопки используя Bootstrap) в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
•
Добавляем контроллер "Home" и представление "Index" (главная страница в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
•
Добавляем библиотеку Entity Framework и создаем соединиение с Базой данных в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
•
Аутентификация (login/register/logout) в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
•
Добавляем класс "Task" для сохранения дел, задач в базу данных в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
•
Добавление nUnit в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Дополнительные темы, вопросы
•
Чем ASP.NET MVC лучше ASP.NET Web Forms ?
•
Выбор между ASP.NET Core и ASP.NET ?
•
Как выбрать интернет браузер чтобы в нем запускался .NET проект
•
Как узнать локальный адрес и порт вашего ASP.NET MVC приложения ?
•
Scripts\index.d.ts(8,1): error TS1008: Build:Unexpected token; 'module, class, interface, enum, import or statement' expected. Scripts\index.d.ts(8,13): error TS1005: Build:';' expected. в Visual Studio 2017 в приложении ASP.NET MVC
•
Error "unable to connect to web server "iis express" | ASP.NET MVC | Visual Studio 2017
•
Error "This site can't be reached" when run ASP.NET application | Solution: Recreate the Self-Signed HTTPS Certificate for localhost in IIS Express
WWW сайты для изучения ASP.NET MVC
•
Cайты для изучения ASP.NET MVC
Ваши вопросы присылайте по почте:
info@dir.by