Entity Framework v4 -> Нужна помощь с Poco и объектами
Вопрос
Я использую EF4, и у меня есть две сущности, которые я хочу сопоставить такой же POCO
. Анкет Я не уверен, как я могу это сделать.
Сущность 1 → Foo (это представляет собой таблицу в дм)
Поко → ФуEntity 2 → FOOVIEW (это представляет собой представление FOOVIEW в БД)
Поко → Фу
Я понимаю, что мне нужно сделать что -то вроде
IObjectSet<Foo> _foos = CreateObjectSet<Foo>();
// Note spelling of the Entity.
IObjectSet<Foo> _foosView = CreateObjectSet<Foo>("FooViews");
Но когда я пробую это, это компилируется, но это терпит неудачу с следующим исключением:
System.ArgumentException: System.ArgumentException: указанный тип объекта, 'myProject.core.foo', не соответствует типу 'entityframe.sqlservermodel.foosview' из EntitySet 'foosViews'.
Какие-либо предложения?
Решение
- Как: определить модель с несколькими наборами объектов на тип
- Как: добавить объект в конкретный набор объектов
Вот контрольный список вещей, которые нужно искать:
- Ваш Модель хранения должен иметь:
- Два
EntitySets
:Foo
а такжеFooView
- Два
EntityTypes
:Foo
а такжеFooView
- Два
- Ваш Концептуальная модель должен иметь:
- Два
EntitySets
:Foo
а такжеFooView
- оба сEntityType
установлен вModelName.Foo
- Один
EntityType
:Foo
- Два
- Ваш Картирование должно быть два
EntitySetMappings
:Foo
с однимEntityTypeMapping
("Modelname.foo") с однимMappingFragment
("Foo")FooView
с однимEntityTypeMapping
("Название модели.Фу") с однимMappingFragment
("Fooview")
Вы должны новым, чтобы выполнить следующее:
Foo foo = new ModelEntities()
.CreateObjectSet<Foo>("FooView")
.First();
Вы можете дать себе старту, выполнив следующее:
- Добавлять
Foo
а такжеFooView
к вашей модели - в
Mapping Details
изFoo
нажиматьAdd a Table or View
и выберитеFooView
- Удалить
FooView
от вашей модели - Сохраните модель и откройте ее в редакторе XML
- (pre-rtm) Находить
<EntityType Name="FooView">
в<StorageModels>
и удалить все неправильные записи из<Key>
(это должно соответствовать<EntityType Name="Foo">
) - Удалить
<EntityTypeMapping Name="IsTypeOf(Foo)" />
а также<EntityTypeMapping Name="IsTypeOf(FooView)" />
(Они причинили мне ошибки)
По состоянию на бета 2 реализация выше
Другие советы
В nhibernate следует решить это с помощью прогнозов. Итак, я думаю, что в рамках сущности должно быть что -то подобное. Я немного погуглил, и я пришел на это: