Mam problem podczas uzyskiwania dostępu do obiektu powiązania z linq do sql. Mam artykuł klasy i użytkownika. Każdy artykuł ma sprzedającego (który jest użytkownikiem) i każdy użytkownik ma wiele artykułów. Rozwiązałem to za pomocą skojarzenia."Nie można uzyskać dostępu do utylizowanego obiektu"
ten sposób mój LINQ do klas sql wygląda następująco:
A to stowarzyszenie:
Oto kod za Article.Seller:
[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
{
...
}
}
Teraz, gdy chcę uzyskać sprzedawcę artykułu, pojawia się następujący błąd:
Cannot access a disposed object. Object name: 'DataContext accessed after Dispose.'.
Błąd pojawia się w momencie otrzymania sprzedawcy.
Jakieś pomysły, jak sobie z tym poradzić?
EDIT: Herezje kod gdzie stosowany jest DataContext:
public static List<Article> Read()
{
using (uDataContext dbx = new uDataContext())
{
return dbx.Article.ToList();
}
}
Lista jest używana w następujący sposób:
List<Article> articles = ArticleDALC.Read();
foreach (Article article in articles)
{
// Exception appears here!
User seller = article.Seller;
....
}
To dlatego, że kontekst, z którego pochodzi dane jest umieszczony. Będziesz musiał pokazać kod, który robi get. – spender
Dzięki za komentarze, dodałem kod, który robi! – Nagelfar