×
=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
Поиск
Программирование, разработка, тестирование
→
Entity Framework (EF5, EF6) для работы с базой данных на C#
→
Model First. Мы создаем модель в Visual Studio. По модели Entity Framework → создает C# классы и Базу данных
Посмотрели
9436
раз(а)
Model First. Мы создаем модель в Visual Studio. По модели Entity Framework → создает C# классы и Базу данных
последнее обновление: 4 июля 2018
Суть данного подхода состоит в том, что мы делаем
модель
в
Visual Studio
.
Автоматически по
модели
создаются:
•
C# классы
•
База данных
План (6 шагов)
Шаг 1.
Создаем новое консольное приложение на C#
Шаг 2.
Создаем модель (Empty EF Designer Model)
Шаг 3.
Сгенерируем C# код по модели
Шаг 4.
Сгенерируем Базу данных по модели
Шаг 5.
Проверяем как создалась наша База данных и таблица в Microsoft SQL Server
Шаг 6.
Пример "Загружаем данные из Базы данных используя C# код"
Шаг 1. Создаем новое консольное приложение
Создаем
новое консольное приложение на C#...
Шаг 2. Создаем модель (Empty EF Designer Model)
Нажимаем правой клавишей мыши на нашем приложении
ConsoleApp1
Выбираем
Add
→
New Item
→
ADO.NET Entity Data Model
→
Empty EF Designer Model
Нажимаем
Finish
Появится пустое окно создания модели
Нажимаем в меню
View
->
Toolbox
Добавим
Entity
(сущность).
Нажимаем правой клавишей мыши на окне модели →
Add New
→
Entity ...
Добавим свойства:
Name
Book
Чтобы добавить свойства нужно нажать правой клавишей мыши на окне
Book
→
Add New
→
Scalar Property
Вот что получилось:
Scalar Property
этот свойства на основе простейших типов int, float, string и т.д.
По умолчанию
все добавляемые свойства имеют тип
string
.
Но мы можем изменить тип в окне свойств.
Поставим для свойства
Price
тип
Int32
Для этого нажмем правой клавишей мыши на
Price
->
Properties
Шаг 3. Сгенерируем C# код по модели
Нажмем правой клавишей мыши на окне модели ->
Add Code Generation Item ...
После этого в проекте
Model1.edmx
мы увидим
•
Model1.Context.tt
которая содержит файл
Model1.Context.cs
•
Model1.tt
которая содержит файл
Book.cs
C#
Файл
Book.cs
//----------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected ...
// Manual changes to this file will be overwritten ...
// </auto-generated>
//----------------------------
namespace
ConsoleApp1
{
using
System;
using
System.Collections.Generic;
public
partial
class
Book
{
public
int
Id { get; set; }
public
string
Name { get; set; }
public
int
Price { get; set; }
}
}
C#
Файл
Model1.Context.cs
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected ...
// Manual changes to this file will be overwritten ...
// </auto-generated>
//------------------------------------------------------------------------------
namespace
ConsoleApp1
{
using
System;
using
System.Data.Entity;
using
System.Data.Entity.Infrastructure;
public
partial
class
Model1Container
:
DbContext
{
public
Model1Container()
: base(
"name=Model1Container"
)
{
}
protected
override
void
OnModelCreating(DbModelBuilder modelBuilder)
{
throw
new
UnintentionalCodeFirstException();
}
public
virtual
DbSet<Book> BookSet { get; set; }
}
}
Шаг 4. Сгенерируем Базу данных по модели
Нажмем правой клавишей мыши на окне модели ->
Generate Database from Model ...
Откроется окно для подключения к
Базе данных
.
Нажмем на кнопку
"New Connection"
Выберем
Microsoft SQL Server
Server name:
Server name
это
имя сервера
базы данных.
Имя сервера
базы данных появляется при
открытии SQL Server Management Studio...
Я написал
EVGENIMSSQLSERVER2012
Select or enter a database name:
Пишем новое название базы данных
(или выбираем существующую Базу данных)
Я написал название
MyDatabase1
Нажимаем OK
После этого будет сгенерирован скрипт базы данных:
Нажмем
Finish
(Готово).
Откроется файл скрипта
User.edmx.sql
.
Файл
Model1.edmx.sql
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, 2012 and Azure
-- --------------------------------------------------
-- Date Created: 07/04/2018 11:24:50
-- Generated from EDMX file: D:\\ConsoleApp1\Model1.edmx
-- --------------------------------------------------
SET QUOTED_IDENTIFIER OFF;
GO
USE [MyDatabase1];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO
-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------
-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'BookSet'
CREATE TABLE [dbo].[BookSet] (
[Id] int IDENTITY(1,1) NOT NULL,
[Name] nvarchar(max) NOT NULL,
[Price] int NOT NULL
);
GO
-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------
-- Creating primary key on [Id] in table 'BookSet'
ALTER TABLE [dbo].[BookSet]
ADD CONSTRAINT [PK_BookSet]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------
-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------
Нам надо будет запустить этот скрипт.
Для этого нажмем в верхнем левом углу на зеленую кнопку
Visual Studio
нам покажет об успешном создании
Базы данных
.
Шаг 5. Проверяем как создалась наша База данных и таблица в Microsoft SQL Server
На заметку!
У вас должна быть установлен
Microsoft SQL Server
. Если у вас это нет то
нужно скачать и установить
Microsoft SQL Server
...
На заметку!
У вас должна быть установлена
SQL Server Management Studio
. Если у вас это нет то
нужно скачать и установить
SQL Server Management Studio
...
Чтобы открыть
SQL Server Management Studio
, мы нажимаем на иконку на рабочем столе:
Появится окно и нажмем кнопку
"Connect"
:
Через 20 секунд увидим что
SQL Server Management Studio
загрузилась:
Видим, что автоматически:
• создалась новая база данных
MyDatabase1
• создалась новая таблица
BookSet
Шаг 6. Пример "Загружаем данные из Базы данных используя C# код"
Добавим в файл
Program.cs
выделенные строчки
C#
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
namespace
ConsoleApplication1
{
class
Program
{
static
void
Main
(
string
[] args)
{
using (Model1Container db =
new
Model1Container())
{
// Добавляем данные
db.BookSet.Add(
new
Book() { Name =
"Граф Монтекристо"
, Price = 123 });
db.BookSet.Add(
new
Book() { Name =
"Властелин колец"
, Price=267 });
db.BookSet.Add(
new
Book() { Name =
"Три кота"
, Price = 125 });
// Сохраняем данные в Базу данных
db.SaveChanges();
// показываем данные из Базы Данных
foreach(Book book
in
db.BookSet)
{
Console.WriteLine(book.Id +
" "
+ book.Name +
" "
+ book.Price);
}
}
}
}
}
Результат примера
← Предыдущая тема
Database First. Entity Framework из существующей таблицы в базе данных → создает C# класс
Следующая тема →
Перебор данных в Entity Framework
Ваши Отзывы ... комментарии ...
Вашe имя
Ваш комментарий
(www ссылки может добавлять только залогиненный пользователь)
+ картинку
Объявления
Объявления
•
Что такое Entity Framework?
Типы в Entity Framework
•
Соглашения по преобразование типов, наименованию таблиц в Entity Framework
•
Внешний ключ (Foreign Key) и каскадное удаление
•
DateTime & только Date & только Time в Entity Framework
Code First
•
Code First. Мы пишем C# класс. Entity Framework по нашему C# классу → создает и заполняет таблицу в базе данных
•
Auto Code First. Entity Framework из существующей таблицы в базе данных → создает C# класс
Database First
•
Database First. Entity Framework из существующей таблицы в базе данных → создает C# класс
Model First
•
Model First. Мы создаем модель в Visual Studio. По модели Entity Framework → создает C# классы и Базу данных
Работа с данными
•
Перебор данных в Entity Framework
•
Добавление данных в Entity Framework
•
Изменение (редактирование) данных в Entity Framework
•
Удаление данных в Entity Framework
Инициализация и миграция базы данных
•
Инициализация базы данных в Entity Framework. DropCreateDatabaseAlways позволяет при каждом новом запуске заполнять базу данных заново
•
Выполнение миграции Базы Данных в Entity Framework (если уже кто-то раньше сделал cs файл миграции, а мне хочется обновить у себя на компютере базу данных я выполняю миграцию то есть вызываю EntityFramework\Update-Database)
•
Создание и выполнение миграции Базы Данных в Entity Framework (я поменял c# класс, потом вызываю EntityFramework\add-migration т.е. автоматически добавляется в проект cs файл с кодом миграции, потом вызываю EntityFramework\Update-Database т.е. выполняется файл миграции и меняется база данных)
SQL в Entity Framework
•
SQL команды в Entity Framework
Транзакции в Entity Framework
•
Управление транзакциями в Entity Framework
Дополнительные темы, вопросы
•
Что такое <connectionStrings> в .config файле для Entity Framework (EF5, EF6)
•
При вызове EntityFramework\Update-Database появляется ошибка "System.Data.SqlClient.SqlException (0x80131904). A network-related or instance-specific error occurred while establishing a connection to SQL Server."
•
При вызове EntityFramework\Update-Database появляется ошибка "Your startup project '...' doesn't reference Microsoft.EntityFrameworkCore.Design"
WWW сайты для изучения Entity Framework
•
Сайты для изучения Entity Framework
Ваши вопросы присылайте по почте:
info@dir.by