【发布时间】:2019-12-05 00:44:15
【问题描述】:
我正在尝试使用 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(字符串 targetMigration) 在 Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.UpdateDatabase(字符串 targetMigration,字符串 contextType) 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabaseImpl(字符串 targetMigration,字符串 contextType) 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.UpdateDatabase.c__DisplayClass0_0.<.ctor>b__0() 在 Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(动作动作) 你调用的对象是空的。 下午>
【问题讨论】:
标签: sqlite entity-framework-core