EF Code-First таблица для каждого типа с базовым классом DbSet - PullRequest
1 голос
/ 03 мая 2011

У меня есть DbSet в DataContext для базового класса:

public DbSet<BaseClass> Users {get;set;}

У меня есть 2 производных класса client и driver.

Оба имеют внешний ключ AdminID.

Когда я получаю данные для определенного типа, проблем нет.

Users.OfType<Client>.ToList()

Однако, если я пытаюсь получить как Клиентов, так и Драйверов, что-то запутывается в генерации кода:

Users.ToList()

Свойство AdminID генерируется 2 раза.

AdminID и AdminID1.

Я думаю, что генератор sql запутался, потому что у меня есть AdminID в обоих классах dervied, но не в родительском.

Я не могу поместить это свойство в родительский, потому что у меня есть другой производный класс, у которого нет этого свойства.

Это ошибка или я делаю что-то не так.

1 Ответ

0 голосов
/ 03 мая 2011

Нет, это не ошибка. Это особенность = ограничение. После перемещения свойства в производный класс оно должно иметь уникальное сопоставление со столбцом базы данных. Из-за этого вы не можете совместно использовать AdminId между двумя производными классами. Каждый класс будет иметь свой собственный столбец внешнего ключа и отношение.

...