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)
,并将其保留,并基于repID
和territoryReferenceID
列创建了主键,因为我无法创建可为空的PK列(我仍然认为这是不理想的,即使我明白为什么)。在数据库中,这可以正常工作,并且如果以某种方式同时删除具有相同repID的两个区域(非常不可能),那么我可以对主键违规错误进行陷阱。
将此映射到EF会给我提到上述错误。我不知道为什么EF有这个问题,我不知道如何让问题消失。我想保持数据库模式中设计的行为。
我该如何解决这个问题?