从基于SQL Server的代码优先EF迁移到SQLite EF

时间:2019-06-14 15:27:03

标签: c# entity-framework entity-framework-6

我已经开发了一个基于EF6代码优先技术的项目,该项目使用SQL Server作为数据库引擎。

现在,我想更改数据库并迁移到SQLite,但是我想以最小的努力做到这一点。

现在我的问题是如何强制EF使用SQLite代替SQL Server?

由于我是EF的新手,如果您以非常清晰的步骤进行说明,将不胜感激。

其他信息: 这是我的主要课程代码:

class PManagerContext :DbContext
{
    public PManagerContext(bool IsRemote, DbConnection dbconn, bool contextOwnsConnection)
        : base(dbconn, contextOwnsConnection)
    {         
        if (!IsRemote)
        {            
             Database.SetInitializer(new PManagerDBInitializerLocal());           
        }
        else
        {
            Database.SetInitializer(new PManagerDBInitializerRemote());      
        }

    }
    public DbSet<User> Users { get; set; }
    public DbSet<InternalP> InternalPs { get; set; }
    public DbSet<LogInOut> LogInOuts { get; set; }
    public DbSet<Contact> Contacts { get; set; }
    public DbSet<PLog> PLogs { get; set; }
}

以上类使用DBInitializer,如下图所示:

class PManagerDBInitializer : DropCreateDatabaseIfModelChanges<PManagerContext>
{        
    protected override void Seed(PManagerContext context)
    {
      //seedding      
    }
}
class PManagerDBInitializerLocal : IDatabaseInitializer<PManagerContext>
{
    public void InitializeDatabase(PManagerContext context)
    {
    //initializing

    } 
}
class PManagerDBInitializerRemote : IDatabaseInitializer<PManagerContext>
{
    public void InitializeDatabase(PManagerContext context)
    {
        //initializing

    }
}

1 个答案:

答案 0 :(得分:0)

SQLite EF6提供程序不支持代码优先迁移,因此您不能这样做。