2013-02-03 17 views
6

मुझे linq से sql तक किसी एसोसिएशन ऑब्जेक्ट तक पहुंचने में समस्या है। मेरे पास एक वर्ग आलेख और उपयोगकर्ता है। प्रत्येक आलेख में एक विक्रेता होता है (जो उपयोगकर्ता है) और प्रत्येक उपयोगकर्ता के पास कई लेख हैं। मैंने एक एसोसिएशन के साथ हल किया।"एक डिस्पोजेड ऑब्जेक्ट तक नहीं पहुंच सकता"

यह कैसे एसक्यूएल वर्गों के लिए मेरी LINQ लग रहा है की तरह है:

[global::System.Data.Linq.Mapping.AssociationAttribute(Name="User_Article", Storage="_Seller", ThisKey="SellerID", OtherKey="ID", IsForeignKey=true)] 
public User Seller 
{ 
    get 
    { 
     return this._Seller.Entity; 
    } 
    set 
    { 
        ... 
    } 
} 
:

association

यहाँ Article.Seller पीछे कोड है: linq to sql classes

और यह संघ है

अब, जब मैं एक लेख के विक्रेता को प्राप्त करना चाहता हूं, तो मुझे निम्न त्रुटि मिलती है:

Cannot access a disposed object. Object name: 'DataContext accessed after Dispose.'.

विक्रेता के प्राप्त होने में त्रुटि होती है।

कोई विचार यह कैसे संभालना है?

संपादित करें: यहाँ 'कोड जहां DataContext प्रयोग किया जाता है:

public static List<Article> Read() 
{ 
    using (uDataContext dbx = new uDataContext()) 
    { 
     return dbx.Article.ToList(); 
    } 
} 

सूची निम्नलिखित के रूप में प्रयोग किया जाता है:

List<Article> articles = ArticleDALC.Read(); 

foreach (Article article in articles) 
{ 
    // Exception appears here! 
    User seller = article.Seller; 
    .... 
} 
+2

यह क्योंकि संदर्भ से डेटा से निपटान किया जाता है आता है। आपको वह कोड दिखाना होगा जो प्राप्त करता है। – spender

+0

टिप्पणियों के लिए धन्यवाद, मैंने कोड जोड़ा जो प्राप्त करता है! – Nagelfar

उत्तर

14

समाधान पाया:

, बस जब DataContext का उपयोग कर झूठी पर DeferredLoadingEnabled गुण सेट:

public static List<Article> Read() 
{ 
    using (uDataContext dbx = new uDataContext()) 
    { 
     dbx.DeferredLoadingEnabled = false; 
     return dbx.Article.ToList(); 
    } 
} 
4

अपने DataContext निपटान न करें।

सभी LINQ ऑब्जेक्ट्स डेटाकॉन्टेक्स्ट से जुड़े होते हैं। आप शायद using ब्लॉक के बाहर ऑब्जेक्ट तक पहुंच रहे हैं जहां DataContext बनाया गया है।

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

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