我已经开发了一个基于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
}
}发布于 2019-06-14 23:32:43
SQLite EF6提供程序不支持代码优先迁移,因此您无法执行此操作。
https://stackoverflow.com/questions/56601200
复制相似问题