C# &引用;无法访问已处置的对象";

C# &引用;无法访问已处置的对象";,c#,linq-to-sql,C#,Linq To Sql,从linq到sql访问关联对象时出现问题。 我有一个类文章和用户。每一篇文章都有一个卖家(即用户),每个用户都有许多文章。我通过一个协会解决了这个问题 以下是我的linq到sql类的外观: 这是协会: 以下是文章背后的代码。卖家: [global::System.Data.Linq.Mapping.AssociationAttribute(Name="User_Article", Storage="_Seller", ThisKey="SellerID", OtherKey="ID", Is

从linq到sql访问关联对象时出现问题。 我有一个类文章和用户。每一篇文章都有一个卖家(即用户),每个用户都有许多文章。我通过一个协会解决了这个问题

以下是我的linq到sql类的外观:

这是协会:

以下是文章背后的代码。卖家:

[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” 在处理之后

错误发生在卖方的get中

你知道怎么处理吗

编辑:这是使用DataContext的代码:

public static List<Article> Read()
{
    using (uDataContext dbx = new uDataContext())
    {
        return dbx.Article.ToList();
    }
}
公共静态列表读取()
{
使用(uDataContext dbx=new uDataContext())
{
返回dbx.Article.ToList();
}
}
该列表的用途如下:

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

foreach (Article article in articles)
{
    // Exception appears here!
    User seller = article.Seller;
    ....
}
List articles=ArticleDALC.Read();
foreach(文章中的文章)
{
//这里出现异常!
用户卖方=物品卖方;
....
}

不要处理数据上下文

所有LINQ对象都与DataContext关联。您可能正在使用创建数据上下文的块访问
之外的对象。

找到了解决方案:

使用DataContext时,只需将
DeferredLoadingEnabled
属性设置为false:

public static List<Article> Read()
{
    using (uDataContext dbx = new uDataContext())
    {
        dbx.DeferredLoadingEnabled = false;
        return dbx.Article.ToList();
    }
}
公共静态列表读取()
{
使用(uDataContext dbx=new uDataContext())
{
dbx.DeferredLoadingEnabled=false;
返回dbx.Article.ToList();
}
}

这是因为数据来自的上下文被释放了。您需要显示执行get的代码。感谢您的评论,我添加了执行get的代码!