-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 に設定し、gallery を null に設定するだけです。ありがとうございます

4

1 に答える 1

1

あなたのアーティカルで、外部キーをnull可能にします

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 に答える