I have 3 tables in my MS SQL database and I have added a EntityFramework(latest) to my project where I have imported these 3 tables. The first problem was that no Entities was built so I changed "Code Genereation Strategy" from None
to Default
.
After build I get
X Already Contains a definition for Y
on all properties of the entities.
When looking closer it have generated a partial ex Users.cs
and one partial User
in in the MainModel.Designer.cs
?
Why is it generating User.cs
? I have a similar setup in another project and the EF is set with the same settings, there is no User.cs
?
Edit1 : I can see one thing that differs and thats Use Strong Spatial Types that is set to False in the failing project, it is however not possible to set it to true(grayed)?
You should either use
None
code generation strategy for your .edmx file. Or removeMainModel.tt
andMainModel.Context.tt
templates, which generate model entities and context.If you use
Default
code generation strategy, then entities and context will be generated intoMainModel.Designer.cs
file. That would be standard entities, inherited fromEntityObject
, context will be inherited ofObjectContext
. With Entity Framework 5 we have POCO entities generation. And whole generation is done in T4 templates, which generate context, inherited fromDbContext
, and POCO entities without some base type (well, object only).When you have both templates and enabled code generation in edmx designer, then two sets of entities will be generated. That's why you have names conflict.