Ich habe ein Problem beim Zugriff auf ein Verknüpfungsobjekt von LINQ zu SQL. Ich habe eine Klasse Artikel und Benutzer. Jeder Artikel hat einen Verkäufer (welcher ein Benutzer ist) und jeder Benutzer hat viele Artikel. Ich habe das mit einer Assoziation gelöst."Kann auf ein entsorgtes Objekt nicht zugreifen"
Dies ist, wie meine LINQ to SQL-Klassen wie folgt aussieht:
Und der Verein ist:
Hier ist der Code hinter dem 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
{
...
}
}
Jetzt, wenn ich den Verkäufer eines Artikels erhalten möchte, bekomme ich den folgenden Fehler:
Cannot access a disposed object. Object name: 'DataContext accessed after Dispose.'.
Der Fehler tritt beim Verkäufer auf.
Irgendwelche Ideen, wie man damit umgeht?
EDIT: Heres' der Code, in dem Datacontext verwendet wird:
public static List<Article> Read()
{
using (uDataContext dbx = new uDataContext())
{
return dbx.Article.ToList();
}
}
Die Liste wie folgt verwendet wird:
List<Article> articles = ArticleDALC.Read();
foreach (Article article in articles)
{
// Exception appears here!
User seller = article.Seller;
....
}
Es ist, weil der Kontext, aus dem die Daten stammen angeordnet ist. Sie müssen den Code anzeigen, der den get ausführt. – spender
Vielen Dank für die Kommentare, ich habe den Code hinzugefügt, der das Get! – Nagelfar