6

में भौतिक हो रहा है मैं अपनी परियोजना में एंटीटीफ्रेमवर्क पीओसीओ + प्रॉक्सी + आलसी लोडिंग का उपयोग करता हूं। आज मैं यह देखने के लिए बहुत उत्साहित था कि कक्षा Transaction में इसके संबंधित संग्रह RowsHashSet (EntityCollection के बजाय) में बना है। संग्रह में परिवर्तनों को ट्रैक करने के लिए मुझे EntityCollection की आवश्यकता है।इकाई फ्रेमवर्क - संबंधित आईसीओलेक्शन हैशसेट

public class Transaction 
{ 
    public virtual ICollection<TransactionRow> Rows { get; set; } 
} 

हालांकि अन्य संस्था कक्षाएं उनसे संबंधित संग्रह EntityCollection में materialized है।

मैं TransactionObjectQuery के माध्यम से लोड कर रहा हूं, इसलिए यह संदर्भ में होना चाहिए। वस्तु के लिए प्रॉक्सी भी बनाई गई है।

क्या कोई बता सकता है - एंटीटी फ्रेमवर्क कैसे तय करता है - हैशसेट या EntityCollection? कुछ चीज हैशसेट क्यों बनती है?

उत्तर

2

बदलें ट्रैकिंग प्रॉक्सी बनाई गई है केवल जब इन दो शर्तें पूरी की जाएं:

  • POCO वर्ग सार्वजनिक है, गैर सील और गैर सार
  • सभी कायम (गेटर और सेटर के साथ) गुण हैं वर्चुअल
+0

ओच, मैंने बस एक बार कक्षा का निरीक्षण किया और महसूस किया कि संग्रह वर्चुअल के रूप में चिह्नित नहीं था :) संकेत के लिए धन्यवाद! – Jefim

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