0

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.错误6017:该类型的NavigationProperty“(PROPERTYNAME)”“(类型名称)”是

OK源,我相当肯定我明白为什么我收到此错误信息,但它对我来说,如何解决这个问题并不明显。

我有一个表salesreps链接到一个表territories与一个简单的外键关系。 territories表通过自动化Feed进行更新,而salesreps表则通过我正在设计的网络界面进行手动维护。

如果领土消失,我不想让代表被删除;我打算在用户界面中突出显示他们进行手动纠正操作,这些用户界面正在构建为需要区域分配的孤儿代表。

销售代表是由一个只与给定地区唯一的ID定义的(我无法对此做任何事情,这种方式超出了我的控制范围),如果某个地区被移除,我将外键ON DELETE行为设置为territoryID值为空,并使列可以为空。然后,我在salesreps表上创建了一个名为territoryReferenceID的计算列,并将其设置为isnull(territoryID, 0),并将其保留,并基于repIDterritoryReferenceID列创建了主键,因为我无法创建可为空的PK列(我仍然认为这是不理想的,即使我明白为什么)。在数据库中,这可以正常工作,并且如果以某种方式同时删除具有相同repID的两个区域(非常不可能),那么我可以对主键违规错误进行陷阱。

将此映射到EF会给我提到上述错误。我不知道为什么EF有这个问题,我不知道如何让问题消失。我想保持数据库模式中设计的行为。

我该如何解决这个问题?

回答

0

这里是我落得这样做:

我删除的实体模型中的关系和导航性能,打算只是直接使用的密钥ID。这工作,直到下一次我从数据库更新模型,在那里它重新引入了关系,并抛出了错误。

因此,我只用一个territoryID列(引用计算列)来查看数据,并创建了用于创建,修改和从视图中删除记录的存储过程。

This Works。这很丑陋,但这正是我试图用EF节省时间的结果。

相关问题