(Это только приложение к ответу Ладислава, согласие и щедрость не должны идти на мой ответ.)
Я был бы удивлен, если такая функция будет когда-либо реализована в EF. Зачем? Потому что вы даже не можете создать такие отношения в реляционной базе данных. Отношение внешнего ключа в реляционной БД (по крайней мере, SQL Server и, вероятно, большинство или все остальные) требует, чтобы главной стороной был столбец, который является либо первичным ключом, либо имеет ограничение уникального ключа . Это имеет смысл, поскольку предполагается, что внешний ключ ссылается на одну уникальную строку в главной таблице.
Теперь EF даже не поддерживает отношения с уникальными ключевыми столбцами, только с первичными ключами. Это то, что может быть поддержано в будущем. Но поддержка связей с внешним ключом для неуникальных столбцов и столбцов, не являющихся первичными ключами, даже не имеет смысла для меня.
Что вы ожидаете, если значение в целевом столбце основной таблицы не является уникальным? Требуется ли исключение, когда вы, например, пытаетесь загрузить ClientLocation.Client
- «Невозможно загрузить свойство навигации« Клиент », поскольку внешний ключ не ссылается на уникальную цель» или предупреждение «Загрузил ли клиент, но есть другой, не могу гарантировать, что я загрузил тот, который вы хотели» или что-то в этом роде?
Если вы хотите сделать себе одолжение, я бы отказался от этой идеи, удалите свойство навигации и подумайте, как много работать с Join
в ваших запросах LINQ.