Wil*_*Wil 5 c# entity-framework ef-code-first
我一直在关注ASP.Net电影数据库教程,一切顺利.
我刚刚更改了模型并添加了一个属性.叫我好奇,但我不想按照刚刚删除数据库的指南 - 我想看看我是否可以修改.
关于不匹配的正确错误 - 这是预期的.
我将评级列添加到数据库中,一切正常.
接下来,我删除了评级专栏,因为我想按照教程学习DropCreateDatabaseIfModelChanges- 然而,我只是得到了错误Invalid column name 'Ratings'.
在这段时间里,ModelHash条目没有改变,我不知道它是如何知道现在或之前存在差异的.
所以 - 1)我搞砸了什么?
2)我该如何解决?
3)在事情发生变化之前,它是如何知道的,但现在哈希没有改变时却没有?
4)您可以提供其他建议吗?
我认为你的描述必须是不正确的,因为正确的行为会抛出异常,尽管手动添加了Rating列.
此行为的工作原理如下:
EdmMetadata会添加一个名为的新表.EdmMetadata包含两列 - Id和ModelHash.手动添加Rating列不会更改存储的哈希值,但模型的哈希值会有所不同.
通过删除IncludeMetadataConvention约定可以完全删除此行为:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove(modelBuilder.Conventions
.OfType<IncludeMetadataConvention>().ToArray());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3740 次 |
| 最近记录: |