Entity framework EntityFramework首先使用多对多关系编写代码

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>()

我尝试基于现有数据库创建代码优先模型,该数据库包含3个表:

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.