Чтобы создать свою локальную базу данных в проекте 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