Discriminator
कॉलम का उपयोग Table-Per-Hierarchy विरासत परिदृश्यों में किया जाता है और आवश्यक है। आप उदाहरण के लिए इस तरह एक मॉडल ...
public abstract class BaseEntity
{
public int Id { get; set; }
//...
}
public class Post : BaseEntity
{
//...
}
public class OtherEntity : BaseEntity
{
//...
}
... है और अपने व्युत्पन्न संदर्भ के लिए एक DbSet<BaseEntity>
जोड़कर उदाहरण के लिए, मॉडल की BaseEntity
हिस्सा बनाते हैं, तो इकाई की रूपरेखा के द्वारा इस वर्ग पदानुक्रम मैप कर देंगे एक तालिका में डिफ़ॉल्ट, लेकिन एक विशेष कॉलम - Discriminator
- इस तालिका में संग्रहीत विभिन्न प्रकारों (Post
या OtherEntity
) के बीच अंतर करने के लिए। यह कॉलम प्रकार के नाम से पॉप्युलेट हो जाता है (फिर Post
या OtherEntity
)।
अच्छे उत्तर के लिए धन्यवाद। हालांकि, मेरा मॉडल व्युत्पन्न नहीं हुआ है। ईएफ अभी भी भेदभाव करने वाला क्यों करता है? – kasperhj
@lejon: क्या आप अपने प्रश्न में मॉडल दिखा सकते हैं? मैंने कभी विरासत के संदर्भ में 'डिस्कमिनेटर' कॉलम नहीं देखा है। मेरा कोड केवल एक उदाहरण है। उदाहरण के लिए आप वही प्राप्त करेंगे यदि 'पोस्ट' स्वयं नहीं लिया गया है, लेकिन यदि' पोस्ट' से प्राप्त अन्य संस्थाएं हैं। – Slauma
मैं देखता हूँ! पोस्ट से लिया गया एक और मॉडल। जवाब के लिए धन्यवाद! – kasperhj