首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在EntityFramework核心Sqlite中启用迁移

如何在EntityFramework核心Sqlite中启用迁移
EN

Stack Overflow用户
提问于 2019-07-22 19:36:25
回答 3查看 3.2K关注 0票数 0

我有Dbset和创建这样的数据库。当第一次创建db时,当我在dbset中添加列之后,则迁移不起作用,未找到表列。请告诉我如何在Xamarin表单中启用EF Core Sqlite迁移。

代码语言:javascript
复制
public  BaseSQLRespository(string databasePath)
{
    try
    {
        _databasePath = databasePath;

        Database.EnsureCreated();

        // bool IsDatabaseCreated= ;
        // Settings.IsDatabaseCreatedSettings = IsDatabaseCreated;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    try
    {
        optionsBuilder.UseSqlite(string.Format("Filename={0}", _databasePath));
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
EN

Stack Overflow用户

发布于 2019-07-23 14:04:45

我猜你的配置是错误的,你不应该在ctor中调用Database.EnsureCreated();,因为OnConfiguring()还没有被调用,你的数据库也没有初始化。

您可以创建一个在serviceProvider启动后调用的方法。

代码语言:javascript
复制
   public static void Initialize(IServiceProvider serviceProvider)
   {
            var context = serviceProvider.GetRequiredService<BaseSQLRespository>();//use your service provider any thing which you can get your current created `BaseSQLRespository`
            context.Database.EnsureCreated();//once call when your app is started. (it is up to you which method you used to call)
   ...
   ...
   }

除了,这里有相似的主题和不同的解决方案,你可以查看:Error in Database.EnsureCreated() while using Entity Framework with Sqlite in Xamarin

票数 -2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57145233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档