Отображение данных из 2 таблиц в 1 объект - Entity Framework 4
Я застрял здесь.
Можно ли отобразить данные из 2 разных таблиц в 1 сущность в Entity Framework 4.
В одной таблице у меня кучка сотрудников, а в другой - информация о проекте. Я хотел бы объединить эти 2 таблицы в одном объекте и сохранить функции отслеживания и т. Д. Возможно ли это?
Я не хочу использовать функцию импорта, но делаю это исключительно через Entity Model.
Может кто-нибудь помочь - когда я пытаюсь это сделать, я все время получаю следующую ошибку:
Ошибка 3024: проблема в сопоставлении фрагментов, начинающихся со строки 2354: необходимо указать сопоставление для всех ключевых свойств (MyProjectTable.PSInitials, MyProjectTable.ProjectID) EntitySet MyProjectTable.
Оба ключа сопоставлены с их соответствующими таблицами. Новый объект создается с помощью MyProjectTable в качестве базового.
Соотношение между двумя таблицами 1-*
Надеюсь, вы можете помочь.
/ Христианская
2 ответа
Вы не можете сопоставить две таблицы с отношением "один ко многим" одному объекту. Если вы не хотите проецировать результаты в один объект в коде, рассмотрите возможность создания представления и его сопоставления.
Согласно http://msdn.microsoft.com/en-us/library/bb896233.aspx
Вы должны отображать тип сущности на несколько таблиц, только если выполняются следующие условия:
Таблицы, на которые вы отображаете, имеют общий ключ.
Тип отображаемого объекта имеет записи в каждой базовой таблице. Другими словами, тип сущности представляет данные, которые имеют взаимно-однозначное соответствие между двумя
столы; тип сущности представляет собой внутреннее соединение двух таблиц.
Причины этого довольно просты - например, таблица точек данных, которые имеют один из пяти "типов". Очевидно, что "тип" будет отдельной таблицей для нормализации, но с точки зрения приложения (работа с данными) имеет смысл иметь все свойства в одной сущности.
Поэтому мы не можем сделать это с помощью Entity Framework - предполагаемого Object-Relational-Mapper. В чем же смысл использования такой структуры?