×
=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 Февраля)
Концерты, выставки, цирки ...
Концерты, выставки, цирки ...
Спектакль "Женитьба" г. Минск 23 января, 27 февраля 2026
Афишу
Спорт занятия ...
Спорт занятия ...
Боулинг
Спорт занятие
Компьютеры, игры, программирование
Компьютеры, игры, программирование
Объявления ...
Объявления ...
Ремонт двигателя Камаз 740.50-360
Объявление
Форум (ваши вопросы, обсуждение)
Форум (ваши вопросы, обсуждение)
Search
Programming, development, testing
→
Entity Framework (EF5, EF6) для работы с базой данных на C#
→
Database First. Entity Framework из существующей таблицы в базе данных → создает C# класс
Looked at
9932
times
Database First. Entity Framework из существующей таблицы в базе данных → создает C# класс
last updated: 4 July 2018
Database First
это самый первый подход, который появился в
Entity Framework
.
Database First
создает
C# классы
по готовым таблицам в
Базе данных
План (6 шагов)
Шаг 1.
Создаем новое консольное приложение на C#
Шаг 2.
Создаем таблицу "Book" в Базе данных в SQL Server Management Studio...
Шаг 3.
Запускаем Database First (EF Designer from database)
Шаг 4.
Смотрим что добавилось
Шаг 5.
Пример "Загружаем данные из Базы данных используя C# код"
Шаг 6.
Вывод
Шаг 1. Создаем новое консольное приложение
Создаем
новое консольное приложение на C#...
Шаг 2. Создаем таблицу в Базе данных
Создаем
таблицу "Book" в Базе данных в SQL Server Management Studio...
Шаг 3. Запускаем Database First (EF Designer from database)
Нажимаем правой клавишей мыши на нашем приложении
ConsoleApplication1
Выбираем
Add
→
New Item
→
ADO.NET Entity Data Model
→
EF Designer from database
Раскроем
Tables
это все таблицы, имеющиеся в базе данных. В моем случае имеется только одна таблица Book. Отметим все подузлы в ветке
Tables
.
В поле
Model Namespace
установим любое имя (я использую по умолчанию). Это имя
соединения...
Шаг 4. Смотрим что добавилось
У нас сгенерировалась
модель
(Model1.edmx) и добавилась в проект.
Модель сгенерировалась по выбранной
Базе данных
.
Visual Studio
отобразила нам схему модели (на картинке).
В моем случае есть только одна таблица
Book
, поэтому на схеме отображается только одна сущность
Book
.
Посмотрим какие файлы создались
В проект добавилась новая папка
Model1.edmx
с файлами:
Book.cs
Entity Framework утилита
создала новый класс
Book
для получения значений из
Базы данных
Model1.Context.cs
Для подключения и работой с
Базой данных
нам нужен
контекст данных
это класс
DbContext
.
Entity Framework
создала новый класс
MyDatabase1Entities
отнаследованный от класса
DbContext
В файле
"App.config"
добавились строчки для соединения с
Базой данных
<
connectionStrings
>
<add name="
MyDatabase1Entities
" connectionString="data source=EVGENI;initial catalog=MyDatabase1;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<
/connectionStrings
>
Читать подробнее
<connectionStrings> в .config файле...
Добавились файлы описывающие таблицы в Базе даных (то есть схема Базы данных):
Model1.Designer.cs
Model1.edmx.diagram
Model1.tt
Model1.Context.tt
C#
Файл
Book.cs
//---------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior
// in your application.
// Manual changes to this file will be overwritten if the code
// is regenerated.
// </auto-generated>
//---------------------------------------------
namespace
ConsoleApplication2
{
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 behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//----------------------------------------------------
namespace
ConsoleApplication2
{
using
System;
using
System.Data.Entity;
using
System.Data.Entity.Infrastructure;
public
partial
class
MyDatabase1Entities
:
DbContext
{
public
MyDatabase1Entities()
: base(
"name=MyDatabase1Entities"
)
{
}
protected
override
void
OnModelCreating(DbModelBuilder modelBuilder)
{
throw
new
UnintentionalCodeFirstException();
}
public
virtual
DbSet<Book> Books { get; set; }
}
}
Шаг 5. Пример "Загружаем данные из Базы данных используя C# код"
Добавим в файл
Program.cs
выделенные строчки
C#
Файл Program.cs
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 (
MyDatabase1Entities
db =
new
MyDatabase1Entities
())
{
foreach (
Book
book
in
db.Books)
Console.WriteLine(book.Id +
" "
+ book.Name +
" "
+ book.Price);
}
}
}
}
На заметку!
класс
Book
содержится в сгенерированном файле
Book.cs
класс
MyDatabase1Entities
содержится в сгенерированном файле
Model1.Context.cs
Результат примера
Шаг 6. Вывод
Подход
Database First
похож с
Auto Code First
.
В подходе
Database First
создаются файлы:
В подходе
Auto Code First
создаются файлы:
•
Book.cs
•
Model1.Context.cs
• В файле
App.config
добавились строчки для соединения с Базой данных
Добавились файлы модели (схемы) Базы даных
:
• Model1.Context.tt
• Model1.Designer.cs
• Model1.edmx.diagram
• Model1.tt
•
Book.cs
•
Model1.cs
• В файле
App.config
добавились строчки для соединения с Базой данных
Я бы посоветовал для готовой
Базы данных
использовать
Auto CodeFirst
, и не использовать
Database First
.
Так как
Database First
добавляет лишние файлы (схему Базы данных).
А также при наличии изменений в
Базе данных
, измнения в C# файле проще вносить при подходе
Auto CodeFirst
← Previous topic
Auto Code First. Entity Framework из существующей таблицы в базе данных → создает C# класс
Next topic →
Model First. Мы создаем модель в Visual Studio. По модели Entity Framework → создает C# классы и Базу данных
Your feedback ... Comments ...
Your Name
Your comment
(www links can only be added by a logged-in user)
+ Picture
Экскурсии по Москве: пешеходные, автобусные и речные прогулки на любой вкус
Объявления
Объявления
•
Что такое 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