Entity framework 代码优先引用一对多

Entity framework 代码优先引用一对多,entity-framework,entity,code-first,fluent-interface,Entity Framework,Entity,Code First,Fluent Interface,我有以下两个表格: 本地化 Id int Text string 食客 现在我希望我的POCO是这样的: public class Diner{ public int Id{get;set;} public ICollection<Localization> NameLocalization{get;set;} public ICollection<Localization>

我有以下两个表格:

本地化

Id                     int
Text                   string
食客

现在我希望我的POCO是这样的:

public class Diner{
   public int Id{get;set;}
   public ICollection<Localization> NameLocalization{get;set;}
   public ICollection<Localization> DescriptionLocalization{get;set;} 
}

public class Localization{
   public int Id{get;set;}
   public string Text{get;set;}
}
公共级餐厅{
公共int Id{get;set;}
公共ICollection名称本地化{get;set;}
公共ICollection DescriptionLocalization{get;set;}
}
公共类本地化{
公共int Id{get;set;}
公共字符串文本{get;set;}
}
问题是:我们如何使用EF Fluent API将NameLocalization和DescriptionLocalization属性映射到本地化的Id?
谢谢

恐怕我还没有测试过这段代码,但可能类似于:

modelBuilder.Entity<Diner>()
    .HasRequired(diner => diner.NameLocalization)
    .WithMany().IsIndependent()
    .Map(s => { s.MapKey(localization => localization.Id, "Name_LocalizationID"); });

modelBuilder.Entity<Diner>()
    .HasRequired(diner => diner.DescriptionLocalization)
    .WithMany().IsIndependent()
    .Map(s => { s.MapKey(localization => localization.Id, "Description_LocationID"); });
modelBuilder.Entity()
.HasRequired(diner=>diner.NameLocalization)
.WithMany().IsIndependent()
.Map(s=>{s.MapKey(本地化=>localization.Id,“Name_LocalizationID”);});
modelBuilder.Entity()
.HasRequired(diner=>diner.DescriptionLocalization)
.WithMany().IsIndependent()
.Map(s=>{s.MapKey(本地化=>localization.Id,“Description_LocationID”);});

SQL Server不支持多个级联删除,因此您需要选择一个关联,以便从对象模型派生SQL Server架构:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Diner>()
        .HasRequired(diner => diner.NameLocalization)
        .WithMany()
        .IsIndependent()
        .Map(s => 
        { 
            s.MapKey(localization => localization.Id, "NameLocalizationID"); 
        });

    modelBuilder.Entity<Diner>()
        .HasOptional(diner => diner.DescriptionLocalization)
        .WithMany()
        .IsIndependent()
        .Map(s => 
        { 
            s.MapKey(localization => localization.Id, "DescriptionLocationID"); 
        });
}
模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
modelBuilder.Entity()
.HasRequired(diner=>diner.NameLocalization)
.有很多
.IsIndependent()
.Map(s=>
{ 
s、 MapKey(本地化=>localization.Id,“NameLocalizationID”);
});
modelBuilder.Entity()
.has可选(diner=>diner.DescriptionLocalization)
.有很多
.IsIndependent()
.Map(s=>
{ 
s、 MapKey(本地化=>localization.Id,“DescriptionLocationID”);
});
}

很抱歉,我给了食客错误的导航。当我运行上面的代码时,它返回了许多记录,因此我认为需要将一:一映射更改为一:多映射。因此,我的Diner类将如下所示:公共类Diner{public int Id{get;set;}公共ICollection name本地化{get;set;}公共ICollection description本地化{get;set;}}您能告诉我如何使用Fluent或数据注释来映射它吗?
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Diner>()
        .HasRequired(diner => diner.NameLocalization)
        .WithMany()
        .IsIndependent()
        .Map(s => 
        { 
            s.MapKey(localization => localization.Id, "NameLocalizationID"); 
        });

    modelBuilder.Entity<Diner>()
        .HasOptional(diner => diner.DescriptionLocalization)
        .WithMany()
        .IsIndependent()
        .Map(s => 
        { 
            s.MapKey(localization => localization.Id, "DescriptionLocationID"); 
        });
}