У меня есть две таблицы:
Client
------------------------
Id (string) <-- PrimaryKey
Name (string)
Number (int)
Department:*
------------------------
Id (int) <-- Primary key
Name (string)
ClientNumber (int?)
Client (Client, virtual)
.....
Теперь я хочу создать необязательное отношение от Департамента к клиенту (используя ClientNumber). Я создал виртуальную собственность в классе Департамента (Клиент), и теперь мне нужно настроить отношение, используя EntityTypeConfiguration.
В базе данных нет внешних ключей, и я не могу изменить базу данных. Я также не могу изменить клиент Entity (class).
Поэтому мне нужно сообщить EntityFramework, что ClientNumber в классе Department связан (необязательно) с свойством Number в классе Client.
Но я не могу понять, как сообщить EF, что номер клиента отдела связан с свойством Client Number, а не с Первичным ключом клиента. (без изменения класса объекта Client)
edit: Свойство Number на клиенте уникально для каждой записи.
Отношение должно приводить к выражению sql следующим образом:
SELECT .....
FROM Department D LEFT OUTER JOIN Client C ON (D.ClientNumber = C.Number)
Это легко сделать, используя объединения в Linq, но было бы здорово:
dbContext.Departments.Include(d => d.Client)
используя виртуальное свойство в классе Департамента, содержащем Клиент (если есть)