删除相关表时出现并发问题

时间:2011-08-19 18:25:35

标签: entity-framework concurrency

我正在使用Dbcontext为我的应用程序提供和ORM,我将我的实体类定义如下:

    public partial class Article
    {
     public int ArticleID { get; set; }

     //other properties

        [ConcurrencyCheck]
        [Timestamp]
        public byte[] TimeStamp { get; set; } 

     public virtual ICollection<Comment> Comments { get; set; } 
}

 public partial class Comment
    {

        public int CommentID { get; set; }

        //other properties 

        public virtual Article Article { get; set; }

}

对于CRUD操作,我会按照您在tutorial

中阅读的内容进行操作

但是当我想删除一篇文章及其相关评论时如下:

var qry=from c in _articleRepo.GetArticleByID(id).Comments
                        select c;

                foreach (var item in qry)
                {
                    _commentRepo.DeleteComment(item.CommentID);

                    _commentRepo.Save();
                }



                _articleRepo.DeleteArticle(id);

                _articleRepo.Save();

删除注释很有效,但是当删除文章时,应用程序会抛出此异常:

  

存储更新,插入或删除语句会影响意外   行数(0)。自那以后,实体可能已被修改或删除   实体已加载。刷新ObjectStateManager条目。

任何人都可以帮助我?

1 个答案:

答案 0 :(得分:0)

我认为你正在保存你的背景一次......

尝试删除 _commentRepo.Save(); ,然后只保存 _articleRepo.Save();

希望这会有所帮助......