Entity framework EntityFramework首先使用多对多关系编写代码
我尝试基于现有数据库创建代码优先模型,该数据库包含3个表:Entity framework EntityFramework首先使用多对多关系编写代码,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,我尝试基于现有数据库创建代码优先模型,该数据库包含3个表: Template ------------- IdEnvironment IdTemplate Context ------------- IdEnvironment IdContext ContextTemplate ------------- IdEnvironment IdTemplate IdContext 我使用以下代码构建模型: modelBuilder.Entity<Template>()
Template
-------------
IdEnvironment
IdTemplate
Context
-------------
IdEnvironment
IdContext
ContextTemplate
-------------
IdEnvironment
IdTemplate
IdContext
我使用以下代码构建模型:
modelBuilder.Entity<Template>()
.HasMany<Context>(e => e.Contexts)
.WithMany(e => e.Templates)
.Map(cs =>
{
cs.MapLeftKey(new string[] { "IdEnvironment", "IdContext" });
cs.MapRightKey(new string[] { "IdEnvironment", "IdTemplate" });
cs.ToTable("ContextTemplate");
});
有没有一种方法可以在不添加
IdEnvironment2
列的情况下修复模型?也许是因为我缺乏知识,但为什么不定义符合预期的模型类呢。也许你的方式只是我不知道的另一种方式。我不想在我的模型中使用ContextTemplate表,因为它只是一个映射上下文和模板之间关系的表。使用context1.Templates比使用context1.ContextTemplates.Templates更有意义。
One or more validation errors were detected during model generation:
IdEnvironment: Name: Each property name in a type must be unique. Property name 'IdEnvironment' is already defined.
TemplateContext: EntityType: EntitySet 'TemplateContext' is based on type 'TemplateContext' that has no keys defined.