I’m using EF4 and I’ve got two entities that I wish to map to the same POCO. I’m not sure how I can do this.
Entity 1 → Foo (this represents a table FOO in the db)
POCO → FooEntity 2 → FooView (this represents a view FooView in the db)
POCO → Foo
I understand that I need to do something like
IObjectSet<Foo> _foos = CreateObjectSet<Foo>();
// Note spelling of the Entity.
IObjectSet<Foo> _foosView = CreateObjectSet<Foo>("FooViews");
But when i try this, it does compile, but it fails with the following exception:
System.ArgumentException:
System.ArgumentException: The specified entity type, ‘MyProject.Core.Foo’,
does not match the type ‘EntityFramework.SqlServerModel.FoosView’
from the EntitySet ‘FoosViews’.
Any suggestions?
Here is a checklist of things to look for:
EntitySets:FooandFooViewEntityTypes:FooandFooViewEntitySets:FooandFooView– both with anEntityTypeset toModelName.FooEntityType:FooEntitySetMappings:Foowith oneEntityTypeMapping(“ModelName.Foo”) with oneMappingFragment(“Foo”)FooViewwith oneEntityTypeMapping(“ModelName.Foo“) with oneMappingFragment(“FooView”)You should new be able to execute the following:
You can give yourself a headstart by doing the following:
FooandFooViewto your modelMapping DetailsofFooclickAdd a Table or Viewand selectFooViewFooViewfrom your model<EntityType Name="FooView">in<StorageModels>and remove any incorrect entries from<Key>(it should match<EntityType Name="Foo">)<EntityTypeMapping Name="IsTypeOf(Foo)" />and<EntityTypeMapping Name="IsTypeOf(FooView)" />(they caused me errors)As of beta 2, implementing the above will break the designer