dir.by  
  Поиск  
Компьютер, программы
Entity Framework (EF5, EF6) for working with a C database#
посмотрели 10164 раз
обновлено: 18 June 2018
 Entity Framework в консольном приложении C# (Code First) 
Entity Framework предоставляет возможность работы с Базой данных через C# код.
Рассмотрим подход Code First (пишем C# код, а таблицы в Базе данных создаются автоматически по C# коду).
План (7 шагов)
Шаг 1. Создаем новое консольное приложение
Шаг 2. Добавляем библиотеку Entity Framework используя NuGet
Нажимаем в меню: ToolsNuGet Package ManagerManage NuGet Packages for Solution...
Нажимаем кнопку "Install"
В проект в папку References добавились packages:
EntityFramework
EntityFramework.SqlServer
В файл App.config добавились новые строчки выделенные зеленым цветом
  Файл: App.config
<?xml version="1.0" encoding="utf-8"?>
<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>


     <startup>
          <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
     </startup>

     <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 в файле App.config
Добавляем соединение <connectionStrings>...</connectionStrings> к Базе данных в файле App.config
Новые добавленные строчки помеченные синим
  Файл App.config
<?xml version="1.0" encoding="utf-8"?>
<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>

     <startup>
          <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
     </startup>

     <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 (на картинке нарисовано).
Шаг 5. Добавим класс Book и класс UserContext для работы с Базой данных
Для подключения к базе данных через Entity Framework, нам нужен посредник - контекст данных.
Контекст данных представляет собой класс, производный от класса DbContext.
Контекст данных содержит одно или несколько свойств типа DbSet, где T представляет тип объекта, хранящегося в базе данных

Класс UserContext это наш контекст данных
Наш контекст данных создаст базу данных MyDatabase1 (если ее не существует)
Класс Book создаст таблицу Books и заполнит данными.

Новые добавленные строчки помеченные синим
  C#     Файл Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data.Entity;

namespace ConsoleApplication1
{
     public class Book
     {
          public int Id { get; set; }
          public string Name { get; set; }
          public int Price { get; set; }
     }


     class UserContext : DbContext
     {
          public UserContext()
               : base("MyConnection1")
          { }

          public DbSet<Book> Books { get; set; }
     }

    
     class Program
     {
          static void Main(string[] args)
          {
               // create db context
               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();
               }

          }
     }
}
Шаг 6. Запускаем консольное приложение
Нажимаем вверху на зеленый треугольник
Приложение запустилось
 
После запуска приложения, выполнится 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:
Old version SQL Server Management Studio (this is version 18)
New version SQL Server Management Studio (this is version 22)
 
A window will appear and press the "Connect" button:
 
Old version SQL Server Management Studio (this is version 18)
New version SQL Server Management Studio (this is version 22)
 
After 20 seconds, we will see that SQL Server Management Studio is loaded:
Old version SQL Server Management Studio (this is version 18)
New version SQL Server Management Studio (this is version 22)
 Смотрим значения в таблице в 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:
Old version SQL Server Management Studio (this is version 18)
New version SQL Server Management Studio (this is version 22)
 
A window will appear and press the "Connect" button:
 
Old version SQL Server Management Studio (this is version 18)
New version SQL Server Management Studio (this is version 22)
 
After 20 seconds, we will see that SQL Server Management Studio is loaded:
Old version SQL Server Management Studio (this is version 18)
New version SQL Server Management Studio (this is version 22)
Шаг 2. Смотрим значения в таблице
Раскрываем базу данных MyDatabase1
 
Нажимаем правой клавишей мыши на таблице dbo.Books и нажимаем Select Top 1000 Rows
 
Смотрим на значения:
Видим, что автоматически:
• создалась новая база данных MyDatabase1 (если такой не было)
• создалась новая таблица Books (если такой не было)
• в таблице Books добавились значения
Таблица Books
Id
Name
Price
1
Граф Монтекристо
123
2
Властелин колец
267
2
Три кота
125
На заметку!
Если запустим программу второй раз, то увидим что в таблице Books уже 6 строчек.
Если запустим программу третий раз, то увидим что в таблице Books 9 строчек.
Если запустим программу четвертый раз, то увидим что в таблице Books 12 строчек.
То есть если таблица Books существет, то при каждом запуске программы добавляются 3 строчки.
 
← Previous topic
DateTime & Date & Time Only in the Entity Framework
 
Next topic →
Auto Code First. Entity Framework creates a C# class from an existing table in the → database
 
Your feedback ... Comments ...
   
Your Name
Your comment (www links can only be added by a logged-in user)

  Объявления  
  Объявления  
 
What is Entity Framework?
Types in Entity Framework
Entity Framework Type Conversion, Table Naming Conventions
Foreign Key and Cascade Deletion
DateTime & Date & Time Only in the Entity Framework
Code First
Code First. We"re writing a C# class. Entity Framework uses our C# class → to create and populate a table in the database
Auto Code First. Entity Framework creates a C# class from an existing table in the → database
Database First
Database First. Entity Framework creates a C# class from an existing table in the → database
Model First
Model First. We create a model in Visual Studio. Using the Entity Framework model, → creates C# classes and a Database
Working with data
Iterating over data in the Entity Framework
Adding Data to the Entity Framework
Modifying (editing) data in the Entity Framework
Deleting data in the Entity Framework
Database initialization and migration
Initialize the database in the Entity Framework. DropCreateDatabaseAlways allows you to repopulate the database with each new run
Performing a Database Migration to Entity Framework (if someone has already made a cs migration file, and I want to update the database on my computer, I perform the migration, that is, call EntityFramework\Update-Database)
Creating and performing a Database migration to Entity Framework (I changed the c# class, then call EntityFramework\add-migration, i.e. the cs file with the migration code is automatically added to the project, then call EntityFramework\Update-Database, i.e. the migration file is executed and the database is changed)
SQL in Entity Framework
SQL Commands in Entity Framework
Transactions in the Entity Framework
Managing Transactions in the Entity Framework
Additional topics, questions
What is <connectionStrings> a .config file for Entity Framework (EF5, EF6)
When EntityFrameworkUpdate-Database is called, the error "System.Data.SqlClient.SqlException (0x80131904) is thrown. A network-related or instance-specific error occurred while establishing a connection to SQL Server. "
When calling EntityFrameworkUpdate-Database, the error "Your startup project "..." doesn"t reference Microsoft.EntityFrameworkCore.Design"
WWW Sites to Learn Entity Framework
Sites to learn Entity Framework

  Ваши вопросы присылайте по почте: info@dir.by