Объедините две таблицы в одну сущность Entities Framework с помощью DefiningQuery - PullRequest
1 голос
/ 03 мая 2011

У меня проблемы с объединением двух сущностей в одну, где одна представляет собой DefiningQuery данных только для чтения.

У меня есть объект Person и объект Company. Объект Person связан с объектом Company через Company.CompanyID с Person.CompanyID как один-ко-многим.Данные для Компании поступают из другой базы данных, поэтому они представлены как DefiningQuery в моем SSDL с ключом.Я хочу сделать поля в Company частью сущности Person, объединив сущности.

Ошибка 3024: проблема при отображении фрагментов, начиная со строки 445. Необходимо указать отображение для всех ключевых свойств (Person.PersonID) EntitySet Person.

Я предполагаю, чтопроблема заключается в том, что у лица Компании нет PersonID, но я не хочу делать компанию DefiningQuery с PersonID и CompanyID

1 Ответ

1 голос
/ 04 мая 2011

У вас есть Person и Company в отношении один-ко-многим, и поэтому вы не можете отобразить поля Person и Company в одну и ту же сущность. Этот тип отображения называется разбиением сущностей, и он требует взаимно-однозначного отношения между таблицами, которое в EF может быть определено только для общего первичного ключа (поскольку EF не поддерживает уникальные ограничения).

...