C# Подключение SQL Server Compact Edition и создание базы данных

Чтобы создать свою локальную базу данных в проекте C# без использования Entity Framework
Нужно скачать и установить SQL Server Compact Edition с сайта Microsoft
https://www.microsoft.com/en-us/download/details.aspx?id=30709
Себе в проект добавить NuGet ссылку
https://www.nuget.org/packages/SqlServerCompact/

При открытии приложения можно проверить создан ли уже

файл базы данных SQL Server Compact Edition

и, если не создан, то создать его.

using System.Data.SqlServerCe;
using System.IO;
using System.Data.Common;
 
    const string dbName = "mydb.sdf";
    const string dbPass = "password";
 
    DbConnectionStringBuilder dbcsBuilder = new DbConnectionStringBuilder
    {
        { "Data Source", dbName },
        { "Password", dbPass },
        { "Encrypt", "TRUE" }
    };
 
    if (! File.Exists(dbName))
    {
        new SqlCeEngine(dbcsBuilder.ConnectionString).CreateDatabase();
    }

Для создания и использования своей базы данных с использованием Entity Framework нужно сначала прочитать статью
Entity Framework Connections and Models
и
Using DbContext in EF 4.1 Part 2: Connections and Models
Если коротко, то для создания базы данных из кода нужно изменить App.config или Web.config в своем проекте — нужно прописать параметры строки подключения к своей базе данных для того, чтобы Entity Framework подхватил это подключение автоматически

<configuration>
<!-- Нужно добавить >> -->
  <connectionStrings>
    <add name="DataBaseName"
         providerName="System.Data.SqlServerCe.4.0"
         connectionString="Data Source=DataBase.sdf"/>
  </connectionStrings>
<!-- Конец секции для добавления << -->;
</configuration>

Название базы данных в строке подключения может отличаться от имени файла самой базы данных.
После настройки строки подключения можно уже использовать DBContext

using System.Data.Entity;
 
    public class MyDBContext : DbContext
    {
        public DBConnector() : base("name=DataBaseName")
        {
        }
 
        public DbSet<User> Users { get; set; }
    }

в строке с DbSet нужно указать в типе — класс, который определяет структуру сохраняемых в таблице данных и затем название таблицы, в которой будут сохраняться данные и с которой можно будет работать через ссылку на созданный объект своего DbContext
Например так:

    private MyDBContext db;
 
    db = new MyDBContext();
    User user = new User { Id = 1, UserName = "Первый юзер"};
    db.Users.Add(user);
    db.SaveChanges();
 
    foreach (var item in db.Users)
    {
        Debug.Print(item.UserName);
    }

Для просмотра созданной базы данных можно также использовать
SDF Viewer

Но лучше все же подключаться прямо из среды Visual Studio как написано в статье Как подключиться в Visual Studio к Microsoft SQL Server Compact


Оставить комментарий