开发者

Code-First Reference one-to-many

开发者 https://www.devze.com 2023-02-09 15:01 出处:网络
I have the following two tables: LOCALIZATION Idint Text开发者_开发百科string DINER Idint Namestring

I have the following two tables:

LOCALIZATION

Id                     int
Text              开发者_开发百科     string

DINER

Id                     int
Name                   string
Description            string
Name_LocalizationID    int
Description_LocationID int

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

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


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


I've not tested this code, I'm afraid, but maybe something like:

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

精彩评论

暂无评论...
验证码 换一张
取 消