3

好的,所以我有 2 个实体:课程和行业

课程和行业实体

行业实体只是一个参考表,其中列出了可以标记到课程的所有可用行业,以对它们进行分类。我输入了多对零或一对一的关系(一个课程可以选择是否有一个行业,而一个行业可以用许多课程标记)。

我知道我曾经玩过一些图表,过去添加和删除关联。

现在这是奇怪的部分:Course 的列映射有 2 个相似的列,IndustryId 和 Industry_Id

奇数课程列映射

我怀疑它来自过去的协会,但认为 EF 会处理这个问题。

这是问题所在:

在创建课程的我看来, IndustryId 是需要填充的属性。当我创建新课程时,我看到数据库中的 IndustryId 已填充。

但是,当我通过 Course (Course.Industry.Description) 访问行业属性时,什么都没有填充。它似乎无法获得行业实体。

我看到数据库中填充了 IndustryId,因此我尝试填充 Industry_Id 列。那解决了它。

很奇怪,模型中声明的属性是 IndustryId,因此该列被填充到数据库中。但是当我尝试通过 Course 获取行业实体时,它需要 Industry_Id,我不太清楚它来自哪里。

有人有想法么?

4

1 回答 1

2

听起来在您从数据库更新时,您将表上的列名从 更改Industry_IdIndustryId. 下次您从数据库更新时,EF5(无法确定这是同一列,因为它与名称匹配)删除了 的映射Industry_Id,并添加了一个名为IndustryId.

但是,您已经根据Industry_Id列在 EDMX 文件中创建了外键映射 - 这就是为什么您在加载相关记录时遇到需要它的问题。

通常,在使用 Database-First 时,无论何时重命名数据库中的列,都需要更新 EF5 模型并更新/更正任何此类差异。

于 2013-03-27T20:00:18.713 回答