24

इससे पहले कि इसे डुप्लिकेट के रूप में चिह्नित किया गया हो, मैंने अन्य संबंधित पोस्टों की जांच की है और वे मेरे प्रश्न का उत्तर नहीं देते हैं।इकाई ढांचे में एक इकाई इकाई में एकाधिक टेबल मैपिंग

मैं एक विरासत डेटाबेस पर काम कर रहा हूं जिसमें 2 टेबल हैं जिनके पास 1: 1 संबंध है। वर्तमान में, मेरे पास परिभाषित इन तालिकाओं में से प्रत्येक के लिए एक प्रकार (1Test: 1Result) है, मैं इन विशेष तालिकाओं को एक वर्ग में विलय करना चाहता हूं।

वर्तमान प्रकार मैं उन्हें इस

public class TestResult 
{ 
    public   int  Id    { get; set; } 
    public   string  Status   { get; set; } 
    public   string  Analysis  { get; set; } 
    public   string  ComponentList { get; set; } 
    public   string  TestName  { get; set; } 
    public   string  Text   { get; set; } 
    public   string  Units   { get; set; } 
    public   bool  OutOfRange  { get; set; } 
    public   string  Status   { get; set; } 
    public   string  Minimum   { get; set; } 
    public   string  Maximum   { get; set; } 

    public virtual Instrument InstrumentUsed { get; set; } 
} 

तरह देखने के लिए मैं वर्तमान में हमारे विरासत Oracle डेटाबेस के लिए इन मानचित्रण के लिए धाराप्रवाह एपीआई का उपयोग कर रहा पसंद करेंगे इस

public class Result 
{ 
    public   string  Id     { get; set; } 
    public   string  Name    { get; set; } 
    public   string  Text    { get; set; } 
    public   string  Units    { get; set; } 
    public   bool  OutOfRange   { get; set; } 
    public   string  Status    { get; set; } 
    public   string  Minimum    { get; set; } 
    public   string  Maximum    { get; set; } 

    public virtual Instrument InstrumentUsed  { get; set; } 

    public virtual Test  ForTest    { get; set; } 
} 


public class Test 
{ 
    public   int  Id   { get; set; } 
    public   string Status  { get; set; } 
    public   string Analysis  { get; set; } 
    public   string ComponentList { get; set; } 
    public virtual Sample ForSample  { get; set; } 
    public virtual Result TestResult { get; set; } 
} 

की तरह लग रहे।

इन्हें एक वर्ग में संयोजित करने का सबसे अच्छा तरीका क्या होगा? कृपया ध्यान दें कि यह एक विरासत डेटाबेस है। तालिकाओं को बदलना एक विकल्प नहीं है और विचारों को बनाना परियोजना में इस बिंदु पर व्यवहार्य समाधान नहीं है।

उत्तर

31

यदि आप दोनों टेबलों में एक ही प्राथमिक कुंजी है तो आप इसे प्राप्त करने के लिए इकाई विभाजन का उपयोग कर सकते हैं।

modelBuilder.Entity<TestResult>() 
    .Map(m => 
     { 
     m.Properties(t => new { t.Name, t.Text, t.Units /*other props*/ }); 
     m.ToTable("Result"); 
     }) 
    .Map(m => 
     { 
     m.Properties(t => new { t.Status, t.Analysis /*other props*/}); 
     m.ToTable("Test"); 
     }); 

यहाँ एक उपयोगी article

+1

वे तो यह अलग से मानचित्रण रिश्ते से स्थिति में काम करना चाहिए वे फ्लॉप यह अभी भी संभव होगा या अभी तक ढांचे के इस संस्करण में जो उपलब्ध नहीं है एक ही कुंजी है ? –

+0

आप उपकरण को कैसे मैप करेंगे? – roland

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