Провайдеры баз данных

MS SQL Server

Последнее обновление: 23.11.2021

Для работы с базой данных MS SQL Server через Entity Framework Core в проект необходимо добавить Nuget-пакет Microsoft.EntityFrameworkCore.SqlServer

MS SQL Server в Entity Framework Core и C#

После установки пакета определим в проекте класс User:

public class User
{
	public int Id { get; set; }
	public string? Name { get; set; }
	public int Age { get; set; }
}

И также определим класс контекста данных:

using Microsoft.EntityFrameworkCore;

public class ApplicationContext : DbContext
{
    public DbSet<User> Users { get; set; } = null!;

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=helloappdb;Trusted_Connection=True;");
    }
}

Для подключения к SQL Server у класса DbContextOptionsBuilder определен метод расширения UseSqlServer, в который передается строка подключения для соединения с MS SQL Server. Строка подключения разбивается на несколько частей:

  • Server: название сервера. В данном случае используется специальный движок MS SQL Server - localdb, который предназначен специально для нужд разработки. Для MS SQL Server Express этот параметр, как правило, имеет значение .\SQLEXPRESS

  • Database: название базы данных

  • Trusted_Connection: устанавливает проверку подлинности

В данном случае мы определяем, что в качестве сервера будет использоваться движок localdb, который предназначен специально для разработки:("Server=(localdb)\mssqllocaldb"), а база данных будет называться helloappdb ("Database=helloappdb").

Подробно про элементы строки подключения к MS SQL Server можно найти здесь: Строка подключения для MS SQL Server

Теперь определим в файле Program.cs простейшую программу по добавлению и извлечению объектов из базы данных:

// добавление данных
using (ApplicationContext db = new ApplicationContext())
{
    db.Database.EnsureDeleted();
    db.Database.EnsureCreated();
    // создаем два объекта User
    User user1 = new User { Name = "Tom", Age = 33 };
    User user2 = new User { Name = "Alice", Age = 26 };

    // добавляем их в бд
    db.Users.AddRange(user1, user2);
    db.SaveChanges();
}
// получение данных
using (ApplicationContext db = new ApplicationContext())
{
    // получаем объекты из бд и выводим на консоль
    var users = db.Users.ToList();
    Console.WriteLine("Users list:");
    foreach (User u in users)
    {
        Console.WriteLine($"{u.Id}.{u.Name} - {u.Age}");
    }
}

Консольный вывод:

Users list:
1.Tom - 33
2.Alice - 26
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850