添加实体模型时出现错误3007

joh*_*oop 6 entity-relationship entity-framework

当我将实体模型添加到我的解决方案时,我收到错误3007.

我找到了这些链接:

好的探索

简短的回答

关于此错误:

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

他们的回答:我同意他们的结论,即只需删除标量属性Person_ID并保留导航属性我的问题就解决了.然而,由于我正在动态构建我的数据库并且我的实体经常更新,因此这不是很可扩展.我不希望每次更新它时都要经历并清理我的实体.

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

Ven*_*kat 5

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

例如

我们有两个表,一个是客户,另一个是订单,使用实体模型设计我们在客户和订单之间添加了关联,当我们这样做Ado.net实体框架时,我将向下面的表添加导航属性.

与Customer.Orders一样 - 此处的订单是Order.Customer

一个 - 很多关系.

因此,我们需要从Order实体集中删除名称为CustomerId [Foreign key column]的属性.

以供参考:

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


Dav*_*sky 0

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