【发布时间】:2011-09-25 04:42:16
【问题描述】:
Error 6017: The NavigationProperty '(propertyname)' on the type '(typename)' is the source of a generated property '(otherpropertyname)' which conflicts with a member of the same name.
好的,我很确定我明白为什么会收到此错误消息,但我不清楚如何解决它。
我有一个表salesreps,它通过一个简单的外键关系链接到一个表territories。 territories 表通过自动提要进行更新,而 salesreps 表是通过我正在设计的 Web 界面手动维护的。
如果领土消失,我不希望代表被删除;我打算在我正在构建的 UI 中突出显示它们以进行手动纠正操作,作为需要分配区域的孤立代表。
销售代表由仅在给定区域内唯一的 ID 定义(对此我无能为力,超出我的控制范围),如果某个区域被删除,我将外键 ON DELETE 设置为territoryID 值为 null,并使列可为空。然后,我在设置为isnull(territoryID, 0) 的salesreps 表上创建了一个名为territoryReferenceID 的计算列,使其保持不变,并根据repID 和territoryReferenceID 列创建主键,因为我不能使一个可为空的PK 专栏(我仍然认为这是蹩脚的,即使我明白为什么会这样)。在数据库中,这可以正常工作,如果以某种方式同时删除了具有相同 repID 的两个区域(极不可能),我可以捕获可以捕获的主键违规错误。
将此映射到 EF 会给我上述错误。我不知道为什么 EF 有这个问题,我也不知道如何让这个问题消失。我想保持数据库架构中设计的行为。
我该如何解决这个问题?
【问题讨论】:
标签: sql-server-2005 entity-framework c#-4.0 entity-framework-4.1