我已经开发了一个基于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
}
}
答案 0 :(得分:0)
SQLite EF6提供程序不支持代码优先迁移,因此您不能这样做。