का उपयोग कर के संदर्भ के साथ सिंक में विदेशी कुंजी रखना चाहिए मैं एफई कोड पहले Pocos साथ प्रयोग पर उदाहरण के एक बहुत देखते हैं कि कुछ इस तरह बताते हैं:मैं जब Pocos
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
}
अब, Blog
संपत्ति को देखो। यह इस के बजाय की तरह नहीं होना चाहिए:
private Blog blog;
public virtual Blog Blog
{
get
{
return blog;
}
set
{
blog = value;
if (blog != null)
{
BlogId = blog.BlogId;
}
}
}
मेरा मतलब है, के बाद से आप पहले से ही कर रहे हैं अपने मॉडल विदेशी कुंजी के साथ "प्रदूषण", नहीं आप कम से कम यह सिंक में संदर्भ के साथ रखना चाहिए? या आपको डेटा पढ़ने पर BlogId
पर भरोसा नहीं करना चाहिए (उदाहरण के लिए। जैसे आप जानना चाहते हैं कि कोई विशिष्ट BlogId
किसी सूची में है)। या शायद DbContext
पर एक जादू संपत्ति है (जैसे KeepForeingKeysPropertiesSyncronizedWithReferences
) जो कि मेरे लिए है और मैं अकेला दुखद प्रोग्रामर हूं जो इसके बारे में चिंतित है? या मैं पागल हूँ? (यह भी, मेरे गरीब अंग्रेजी के लिए खेद)
संपादित करें कि के लिए खेद है - यह वास्तव में एक बेवकूफ सवाल था। स्टीफन सही है, ईएफ वास्तव में आपके लिए यह करता है। मुझे यह नहीं देखा गया था क्योंकि जिन संदर्भों को मैं पास कर रहा था उन्हें AsNoTracking()
से लोड किया गया था। केवल इस स्थिति में आपके पास आईडी के साथ संदर्भ होगा और फोरिंग कुंजी फ़ील्ड 0 होगा। जब तक आप संदर्भ पर पहले से ही एक संदर्भ पास करते हैं, तो इसे काम करना चाहिए।
एफई के बारे में पता नहीं है इसके किया है, लेकिन आप NHibernate इस्तेमाल किया आप BlogId संपत्ति में बिल्कुल भी नहीं डाल होता था। – erikkallen
मुझे लगता है कि BlogId का उपयोग करने की संभावना होने पर यह अच्छा है, इसलिए मुझे ब्लॉग संदर्भ रखने की आवश्यकता नहीं है और फिर भी एसोसिएशन को बचा सकता है। मैं बस इसे सिंक्रनाइज़ करने के बारे में उलझन में हूं - मेरे लिए यह करने के लिए स्पष्ट चीज की तरह दिखता है लेकिन मैंने कभी ऐसा नहीं देखा है, तो शायद मैं गलत हूं: / – user1526627