2011-02-08 11 views
6

मैं निम्नलिखित दो तालिकाओं:कोड-प्रथम संदर्भ एक-से-कई

स्थानीयकरण

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 के साथ स्थानीयकरण के आईडी में eLocalization और विवरण लोकलाइजेशन संपत्ति? धन्यवाद

उत्तर

3

एसक्यूएल सर्वर कई झरना का समर्थन नहीं करता, को हटा देता है ताकि आप अपने संघों में से एक बनाने की जरूरत है ताकि आपके ऑब्जेक्ट मॉडल से एक एसक्यूएल सर्वर स्कीमा प्राप्त करने के लिए में वैकल्पिक:

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

मैं माफी चाहता मैं गलत डिनर नेविगेशन दिया हूँ। जब मैंने ऊपर दिए गए कोड को चलाया, तो उसने कई रिकॉर्ड लौटाए, इसलिए मुझे लगता है कि मुझे एक को बदलने की जरूरत है: एक से एक: कई मैपिंग। तो मेरी डिनर वर्ग इस तरह दिखेगा: सार्वजनिक वर्ग डिनर { सार्वजनिक पूर्णांक आईडी {मिल; सेट;} सार्वजनिक ICollection <स्थानीयकरण> NameLocalization {मिल; सेट;} सार्वजनिक ICollection <स्थानीयकरण> DescriptionLocalization {मिल; सेट; } } क्या आप कृपया बता सकते हैं कि मैं फ़्लुएंट या डेटा एनोटेशन का उपयोग करके इसे कैसे मैप करता हूं? – sadhat75

संबंधित मुद्दे