-2

我的文章课上有这个:

    public int GalleryID { get; set; }
    public virtual Gallery Gallery { get; set; }

这是我的画廊课:

public class Gallery
{

    public int GalleryId { get; set; }
    public string Name { get; set; }
    public virtual ICollection<Photo> Photos { get; set; }
}

当我在存储库中删除画廊时:

    public virtual void Delete(int id)
    {
        T entity = dbset.Find(id);
        dbset.Remove(entity);
        dataContext.SaveChanges();
    }

我也删除了文章,但这不是我想要的。我想保留文章(只是可能将galleryId 设置为0 a 并将gallery 设置为null。谢谢

4

1 回答 1

1

在您的文章中使外键可以为空

public int? GalleryID { get; set; }

删除图库时,您需要清除其文章收藏

public void DeleteGallery(int id)
{
    var entity = dataContext.Galleries
                .Include(e => e.Articles)  // include your child object collection
                .First(e => e.Id == id);

    dataContext.Galleries.Articles.Clear();  // this removes the reference to the parent
    dataContext.Galleries.Remove(entity);

    dataContext.SaveChanges();
}

见这里EF 4.1 RC:奇怪的级联删除

于 2012-04-17T07:53:04.503 回答