WPF程序应用SqlServerCompact本地数据库迁移

    xiaoxiao2021-04-18  54

    有时候,为了程序存储数据的可靠性、安全性和增删改查的速度,不得不采用本地数据库。

    在最近写的一个WPF程序中,我采用的是EntityFrameworkCore.SqlServerCompact40这个包来应用SqlServerCompact数据库。

    首先要,构建数据的基础模型类,最后封装到对数据操作的context类,

    EntityFrameworkCore.SqlServerCompact40支持EFcore的数据库迁移,一定要安装Microsoft.EntityFrameworkCore.Tools这个包,才能支持自动生成数据库迁移类。

    另外在WPF中需要另外构建继承于IDbContextFactory<ClientContext>的ClientContextFactory类。

    using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.Extensions.Configuration; namespace Test.Infrastructure.EntityFramework { public class ClientContextFactory : IDbContextFactory<ClientContext> { private IConfigurationRoot configuration; public ClientContextFactory() { var builder = new ConfigurationBuilder() .SetBasePath(System.AppContext.BaseDirectory) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); configuration = builder.Build(); } public ClientContext Create(DbContextFactoryOptions options) { var optionsBuilder = new DbContextOptionsBuilder<ClientContext>(); optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection"), m => { m.EnableRetryOnFailure(); }); return new ClientContext(optionsBuilder.Options); } } }

    然后就可以,通过vs控制台,执行Add-Migration命令,自动生成迁移类了。

    相关资料

    No parameterless constructor was found on 'ClientsContext'. Either add a parameterless constructor to 'ClientsContext' or add an implementation of 'IDbContextFact

    Dotnet EF Migrations for ASP.NET Core

    转载请注明原文地址: https://ju.6miu.com/read-674846.html

    最新回复(0)