好的,所以我有 2 个实体:类(class)和行业
行业实体只是一个引用表,其中列出了可以标记到类(class)的所有可用行业,以对它们进行分类。我建立了一个多对零或一个关系(一门类(class)可以选择是否有一个行业,而一个行业可以标记很多类(class))。
我知道我过去玩过一些图表,添加和删除关联。
现在是奇怪的部分:Course 的列映射有 2 个相似的列,IndustryId 和 Industry_Id
我怀疑它来自过去的协会,但认为 EF 会处理这个问题。
这是问题所在:
在我看来,创建类(class)时,IndustryId 是需要填充的属性。当我创建新类(class)时,我看到填充了数据库中的 IndustryId。
但是,当我通过 Course (Course.Industry.Description) 访问 Industry 的属性时,没有填充任何内容。它似乎无法获得 Industry 实体。
我看到在数据库中填充了 IndustryId,所以我尝试填充 Industry_Id 列。那修复了它。
奇怪的是,模型中声明的属性是 IndustryId,因此该列填充在数据库中。但是当我尝试通过 Course 获取 Industry 实体时,它需要 Industry_Id,我不太清楚它来自哪里。
有人有主意吗?
最佳答案
听起来像是在从数据库更新时,您将表上的列名从 Industry_Id
更改为 IndustryId
。下次从数据库更新时,EF5(无法确定这是同一列,因为它匹配名称)删除了 Industry_Id
的映射,并添加了一个名为 IndustryId
的新列。
但是,您已经根据 Industry_Id
列在您的 EDMX 文件中创建了外键映射 - 这就是为什么您在加载相关记录时遇到需要它的问题。
通常,在使用 Database-First 时,无论何时重命名数据库中的列,都需要更新 EF5 模型并更新/更正任何此类差异。
关于asp.net-mvc-3 - EF5 : Unused and unknown column causes problems,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15301452/