6

将实体模型添加到解决方案时出现错误 3007。

我找到了这些链接:

很好的解释

简短的回答

关于这个错误:

错误 1 ​​错误 3007:从第 89、94 行开始映射片段时出现问题:两个片段中的非主键列 [Person_ID] 被映射到不同的概念侧属性 - 数据不一致是可能的,因为相应的概念侧属性可以独立修改。

他们的回答:我同意他们的结论,即通过简单地删除标量属性 Person_ID 并保留导航属性,我的问题就得到了解决。然而,这不是很可扩展,因为我正在动态构建我的数据库并且我的实体经常更新。我不想每次更新它时都必须经过并清理我的实体。

我的问题:有没有办法通过纠正 EF 构建实体的方式来修复错误?或者有没有办法通过代码删除标量属性?也许我甚至忽略了一些选项。

4

2 回答 2

5

尝试使用实体模型设计从实体集中删除外部属性列,它将解决您的问题

例如

我们有两张表,一张是客户,另一张是订单,使用实体模型设计,我们在执行此 Ado.net 实体框架时添加了客户和订单之间的关联,我将在下表中添加导航属性。

像 Customer.Orders - 这里的订单是列表 Order.Customer

一多关系。

因此,我们需要从Order实体集中删除名为CustomerId [外键列] 的属性。

以供参考:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/2823634f-9dd1-4547-93b5-17bb8a882ac2/

于 2010-08-26T06:39:40.667 回答
0

我对 EF v1 的体验与您的类似。当 EDM 生成不正确并且您无法解决该问题时,您必须手动编辑 EDM。EF v.Next(我相信实体框架 v4)将支持“仅代码”实体数据模型,并且 EDM 设计器应该会更好。一种或另一种改进应该使我们的生活更轻松。直到那时...

于 2009-09-03T13:23:22.347 回答