2

假设我有一个具有“IsArchived”属性的类 Person。一个人可以有一个集合——每个集合也可以被存档。

现在我的存储库中有一个 UpdatePerson 方法,如下所示:

    public Person UpdatePerson(Person person)
    {
        _db.Persons.Attach(person);
        var entry = _db.Entry(person);
        entry.Property(e => e.Name).IsModified = true;
        entry.Property(e => e.Friends).IsModified = true;
        SaveChanges();
        return entry.Entity;
    }

而且我有一个单独的存档存储库方法:

    public void ArchivePerson(int personId)
    {
        var person = _db.Persons.FirstOrDefault(c => c.PersonId == personId);
        if (person != null)
        {
            person.IsArchived = true;

            foreach (var friend in person.Friends)
            {
                ArchivePerson(friend.PersonId);
            }

            SaveChanges();
        }
    }

这意味着从我的 WebAPI 中,我必须将一个函数专用于归档/取消归档。如果我可以调用 Update 并为给定实体设置 Archived 并在可能的情况下将其应用于所有子实体,那就太酷了。有什么办法可以做到这一点,还是我最好坚持使用 ArchivePerson 存储库方法?

4

0 回答 0