Tôi gặp sự cố khi truy cập đối tượng liên kết từ LINQ đến sql. Tôi có Bài viết và Người dùng. Mỗi Điều có một người bán (là một Người dùng) và mỗi người dùng có nhiều Bài viết. Tôi giải quyết điều đó với một hiệp hội."Không thể truy cập đối tượng được xử lý"
Đây là cách LINQ của tôi đến các lớp học sql trông giống như:
Và đây là hiệp hội:
Đây là mã đằng sau 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
{
...
}
}
Bây giờ, khi tôi muốn lấy Người bán của một Điều, tôi nhận được lỗi sau:
Cannot access a disposed object. Object name: 'DataContext accessed after Dispose.'.
Lỗi xảy ra khi nhận được người bán.
Bất kỳ ý tưởng nào về cách xử lý vấn đề này?
EDIT: Heres' mã nơi DataContext được sử dụng:
public static List<Article> Read()
{
using (uDataContext dbx = new uDataContext())
{
return dbx.Article.ToList();
}
}
Danh sách này được sử dụng như sau:
List<Article> articles = ArticleDALC.Read();
foreach (Article article in articles)
{
// Exception appears here!
User seller = article.Seller;
....
}
Đó là vì bối cảnh mà từ đó các dữ liệu đến từ được xử lý. Bạn sẽ cần hiển thị mã nhận được. – spender
Cảm ơn các ý kiến, tôi đã thêm mã mà nhận được! – Nagelfar