我一直关注着ASP.Net Movie Database Tutorial,而且一切顺利。
我刚刚更改了模型并添加了一个属性。叫我好奇,但我不想按照刚刚删除数据库的指南 - 我想看看我是否可以修改。
correct error出现了一个不匹配的情况 - 这是预期的。
我将评级列添加到数据库中,一切正常。
接下来,我删除了评分专栏,因为我想按照教程了解DropCreateDatabaseIfModelChanges
- 但是,我只是收到错误Invalid column name 'Ratings'.
在所有这段时间里,ModelHash
条目没有改变,我不知道它是如何知道现在或之前存在差异的。
所以 - 1)我搞砸了什么?
2)我该如何解决?
3)在事情发生变化之前,它是如何知道的,但现在当哈希没有改变时却不知道?
4)您可以提供其他建议吗?
答案 0 :(得分:5)
我认为您的描述必须不正确,因为尽管手动添加了Rating
列,但正确的行为会引发异常。
此行为的工作原理如下:
EdmMetadata
的新表。EdmMetadata
包含两列 - Id
和ModelHash
。 手动添加Rating
列不会更改存储的哈希值,但模型的哈希值会有所不同。
删除IncludeMetadataConvention
约定:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove(modelBuilder.Conventions
.OfType<IncludeMetadataConvention>().ToArray());
}