6

次の2つのテーブルがあります。

ローカリゼーション

Id                     int
Text                   string

ダイナー

Id                     int
Name                   string
Description            string
Name_LocalizationID    int
Description_LocationID int

今、私は自分の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;}
}

質問: EF Fluent API を使用して NameLocalization および DescriptionLocalization プロパティをローカリゼーションの ID にマップするにはどうすればよいですか? ありがとう

4

2 に答える 2

3

SQL Server は複数のカスケード削除をサポートしていないため、オブジェクト モデルから SQL Server スキーマを派生させるには、関連付けの 1 つをオプションにする必要があります。

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"); 
        });
}
于 2011-02-09T00:48:46.140 に答える
0

私はこのコードをテストしていませんが、恐れていますが、次のようなものかもしれません:

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"); });
于 2011-02-08T22:48:24.900 に答える