好的,所以我有2个实体:课程和行业
行业实体只是一个参考表,其中列出了可以标记到课程的所有可用行业,以对其进行分类。我提出了很多与零或一种关系(一门课程可以选择是否有一个行业,而一个行业可以标记许多课程)。
我知道我已经玩了一些图表,过去添加和删除了关联。
现在这里是奇怪的部分:Course的列映射有2个类似的列,IndustryId和Industry_Id
我怀疑这是来自过去的协会,但我认为EF会照顾到这一点。
以下是问题:
在我认为创建课程的过程中,IndustryId是需要填充的属性。当我创建新课程时,我看到数据库中的IndustryId已填充。
但是,当我通过课程(Course.Industry.Description)访问Industry的属性时,不会填充任何内容。它似乎无法获得行业实体。
我看到db中填充了IndustryId,所以我尝试填充Industry_Id列。修正了它。
很奇怪,模型中声明的属性是IndustryId,因此该列填充在db中。但是当我试图通过课程获得行业实体时,它需要Industry_Id,我不知道它来自哪里。
有人有什么想法吗?
答案 0 :(得分:2)
听起来在您从数据库进行更新时,您将表格上的列名从Industry_Id
更改为IndustryId
。下次从数据库更新时,EF5(无法确定这是与列名匹配的列是否相同)删除了Industry_Id
的映射,并添加了一个名为IndustryId
的新列
但是,您已经基于Industry_Id
列在EDMX文件中创建了外键映射 - 这就是为什么在加载相关记录时会遇到需要它的问题。
通常,在使用Database-First时,无论何时重命名数据库中的列,都需要更新EF5模型并更新/更正任何此类差异。