我正在尝试使用EF.Core测试制作SQLite数据库。尽管我竭尽全力使其正常运行,但仍无法按预期运行,我也不知道为什么。 Add-Migration命令工作正常,但是当我尝试更新数据库时,它将引发System.NullReferenceException。有人知道为什么吗?在下面,您可以看到代码和异常。
public class TestModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
}
private const string ConnectionString = "Data Source = AutoHome.db";
public DbSet<TestModel> testModels { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseSqlite(ConnectionString);
base.OnConfiguring(options);
}
PM>更新数据库 构建开始... 构建成功。 System.NullReferenceException:对象引用未设置为对象的实例。 在Microsoft.Data.Sqlite.SqliteConnection.Open() 在Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(预期的布尔错误) 在Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(布尔错误期望) 在Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteDatabaseCreator.Exists() 在Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists() 在Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration) 在Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(String targetMigration,String contextType) 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(String targetMigration,String contextType) 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase。<> c__DisplayClass0_0。<。ctor> b__0() 在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action操作) 你调用的对象是空的。 PM>
答案 0 :(得分:1)
似乎这是Microsoft.Data.Sqlite.Core的问题。我刚刚添加了一个参考Microsoft.Data.Sqlite,现在一切正常。
OBS !!!
已经有关于此GitHub/EF/Issues
的公开门票