一对多的代码优先参考 [英] Code-First Reference one-to-many

查看:56
本文介绍了一对多的代码优先参考的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下两个表:

本地化

Id                     int
Text                   string

晚餐

Id                     int
Name                   string
Description            string
Name_LocalizationID    int
Description_LocationID int

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

Now I want my POCO like this:

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;}
}

问题是:如何使用EF将NameLocalization和DescriptionLocalization属性映射到Localization的ID流利的API?
谢谢

Question is: How we can map NameLocalization and DescriptionLocalization property to Localization's Id with EF Fluent API? Thanks

推荐答案

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

SQL Server does not support multiple cascade deletes, so you need to make one of your associations optional in order to derive a SQL Server schema from your object model:

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"); 
        });
}

这篇关于一对多的代码优先参考的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆