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
обновляется через автоматический канал, тогда как таблица торговых представителей поддерживается вручную через веб-интерфейс, который я разрабатываю.
Я не хочу, чтобы представители удалялись, если территория исчезнет; Я намерен выделить их для ручного корректирующего действия в пользовательском интерфейсе, который я создаю, как представителей-сирот, нуждающихся в назначении территории.
Торговые представители определяются идентификатором, который уникален только для данной территории (я ничего не могу с этим поделать, это находится вне моего контроля), если территория удалена, я сделал поведение внешнего ключа ON DELETE
, установив значение territoryID
равным нулю, и сделал столбец нулевым. Затем я создал вычисляемый столбец с именем territoryReferenceID
в таблице salesreps
со значением isnull(territoryID, 0)
, сделал его постоянным и создал первичный ключ на основе столбцов repID
и territoryReferenceID
, поскольку я не могу создать столбец PK, допускающий значение NULL (который я все еще считаю хромым, даже если я понимаю, почему это так). В базе данных это работает нормально, и если каким-то образом две территории будут удалены с одним и тем же repID одновременно (крайне маловероятно), у меня все в порядке с ошибкой нарушения первичного ключа, которую я могу перехватить.
Сопоставление этого с EF дает мне вышеупомянутую ошибку. Я не знаю, почему у EF с этим проблемы, и я не знаю, как решить эту проблему. Я хочу сохранить поведение, разработанное в схеме базы данных.
Как я могу исправить эту проблему?