最近在使用WPF开发一个文件同步的客户端工具,这个专栏将记录框架搭建过程。包括自动生成SQLite表和库。
开发环境使用vs2022
1.创建一个WPF程序,选择net6框架,并将该程序命名为FileSynchronizationClient。
2.添加NuGet包,Microsoft.EntityFrameworkCore.Sqlite。
可在包管理器中使用命令
NuGet\Install-Package Microsoft.EntityFrameworkCore.Sqlite -Version 8.0.0-preview.3.23174.2
3.在项目中创建一个名为User的实体类。添加如下代码
public class User
{
public Guid ID{get;set;}=Guid.newGuid();
public string UserName{get;set;}
public string PassWord{get;set;}
}
4.添加一个SqLiteHelper类并添加如下代码
Public class SQLiteHelper :DBContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
// 获取数据库文件路径
string databasePath = Path.Combine(AppDomain.CurrentDomain.BaseDirector, "database.db");
// 配置SQLite数据库连接
optionsBuilder.UseSqlite($@"Data Source={databasePath};Foreign Keys=True;");
}
public DbSet<User> Users{ get; set; }
}
5.在App.xaml.cs文件中添加如下代码,如果有自己创建的程序入口点则在入口点添加。
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
using (var dbContext = new SQLiteHelper())
{
dbContext.Database.EnsureCreated();
}
}
这样就实现了在WPF中自动创建SQLite数据库和表了。
操作数据库则在你的Class中注入SQLiteHelper,使用DbSet中的方法操作。
public class UserService
{
privatr readonly SQLiteHelper soure;
public UserService(SQLiteHelper soure)
{
this.soure = soure;
}
public void AddUser()
{
User user = new User()
{
Name = "admin";
Password = "123456";
}
soure.Users.Add(user);
soure.SaveChanges();
}
}