linq から sql への関連オブジェクトへのアクセス中に問題が発生しました。クラス Article と User があります。各記事には売り手 (ユーザー) がいて、各ユーザーには多くの記事があります。私は協会でそれを解決しました。
これは、私のlinq to sqlクラスがどのように見えるかです:
そして、これは協会です:
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
{
...
}
}
ここで、記事の販売者を取得したい場合、次のエラーが発生します。
破棄されたオブジェクトにアクセスできません。オブジェクト名: 'DataContext は 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;
....
}