0

我只是在创建一个具有一对关系的新对象。对用户关系的评论。当我尝试检索新对象时,我收到错误无法访问已处置的对象。我不确定发生了什么。感谢您的任何帮助或建议。

     using (var db = new LinqEntityDataContext())
            {

                var comment = new Comment();
                comment.CommentBy = GlobalVariables.User.ID;
                comment.OutPutMessage = commentText.Trim();
                comment.PhotoID = int.Parse(pictureID);
                comment.CommentDate = DateTime.Now;
                db.Comments.InsertOnSubmit(comment);
                db.SubmitChanges();
                return comment;
            }
4

2 回答 2

2

您需要return comment;在最后一个括号之后设置。

您正在 Dispose 之前完成该功能,这就是您获得异常的原因

像这样的东西。

 var comment = new Comment();
 using (var db = new LinqEntityDataContext())
            {               
                comment.CommentBy = GlobalVariables.User.ID;
                comment.OutPutMessage = commentText.Trim();
                comment.PhotoID = int.Parse(pictureID);
                comment.CommentDate = DateTime.Now;
                db.Comments.InsertOnSubmit(comment);
                db.SubmitChanges();              
            }
  return comment;
于 2012-09-03T22:46:48.513 回答
0

因此,要理解我猜想使用 Linq to SQL,您必须进行两次调用,一次插入而不是另一次调用,以获取具有关联的数据。所以在我的代码中,我只有两个 using 语句,第二个只是调用来获取创建的 id 对象(对我来说似乎是多余的)。我希望有人可以发布或将此发布指向真正的解决方案。

于 2012-09-04T00:29:07.880 回答