C# SQLite.CodeFirst-在创建模型时不能使用上下文
我正在使用SQLite db处理WPF应用程序。尝试使用SQLite.CodeFirst使用代码优先方法设计数据库 错误为:{“创建模型时无法使用上下文。如果在OnModelCreating方法中使用上下文,或者多个线程同时访问同一上下文实例,则可能引发此异常。请注意,DbContext和相关类的实例成员不保证线程安全。”} 我在使用代码:C# SQLite.CodeFirst-在创建模型时不能使用上下文,c#,wpf,entity-framework,sqlite,C#,Wpf,Entity Framework,Sqlite,我正在使用SQLite db处理WPF应用程序。尝试使用SQLite.CodeFirst使用代码优先方法设计数据库 错误为:{“创建模型时无法使用上下文。如果在OnModelCreating方法中使用上下文,或者多个线程同时访问同一上下文实例,则可能引发此异常。请注意,DbContext和相关类的实例成员不保证线程安全。”} 我在使用代码: DbContext: class GestDbContext : DbContext { override protected void OnMod
class GestDbContext : DbContext
{
override protected void OnModelCreating(DbModelBuilder modelBuilder)
{
var model = modelBuilder.Build(Database.Connection);
IDatabaseCreator sqliteDatabaseCreator = new SqliteDatabaseCreator();
sqliteDatabaseCreator.Create(Database, model);
}
public DbSet<GestUser> GestUsers { get; set; }
public DbSet<Gesture> Gestures { get; set; }
public DbSet<UserSettings> UserSettings { get; set; }
}
private DbModelBuilder _modelBuilder;
override protected void OnModelCreating(DbModelBuilder modelBuilder)
{
_modelBuilder = modelBuilder;
}
然后在公共方法中使用它:
public void Init()
{
var model = _modelBuilder.Build(Database.Connection);
IDatabaseCreator sqliteDatabaseCreator = new SqliteDatabaseCreator();
sqliteDatabaseCreator.Create(Database, model);
}
然后执行一次(我需要创建一次结构)
IDatabaseCreator.Create()-方法做什么?我假设您在使用上下文时试图在模型创建时播种值,或者modelbuilder是错误的。
public void Init()
{
var model = _modelBuilder.Build(Database.Connection);
IDatabaseCreator sqliteDatabaseCreator = new SqliteDatabaseCreator();
sqliteDatabaseCreator.Create(Database, model);
}
public MainWindowViewModel()
{
using (var context = new GestDbContext())
{
var entity = context.Gestures.Any();
context.Init();
}
}