在 XPO 对象中一次设置多个属性

Setting multiple properties at once in an XPO Object

我一直在尝试使用 C# 和 DevExpress,遇到了一种我找不到简单解决方案的情况。

我有三个对象:

  1. A BookAuthor 的集合(多对多)
  2. 一个 Author 有一个 Book 的集合(多对多)
  3. 一个Series有两个集合; BooksAuthors
  4. BookAuthor 都有一个 Series 集合

我的问题是,每当我将 Book 添加到 Series 时,那个 BookAuthor(s) 也应该添加到 Series.

[Association("SeriesBooks")]
public XPCollection<Book> Books => GetCollection<Book>(nameof(Books));

[Association("SeriesAuthors")]
public XPCollection<Author> Authors
{
    get { return GetCollection<Author>("Authors"); }
}

我考虑了以下几点:

但是由于我是初学者,所以我实际上并没有从中得到任何东西。

如果你能提供所有帮助,我会很高兴。

没有任何使用 DevExpress 的经验,但如果你真的想要系列中作者的道具 class 我会创建一个只读道具,从书籍列表中读取作者.类似于:

public List<Author> Authors { 
        get {
            Books.SelectMany(x => x.Authors).ToList();
        } 
    }

它将消除维护单独的作者列表所涉及的工作。对系列中任何书籍的任何更改,包括书籍本身的添加和删除,或对书籍作者的任何更改,都会自动反映在系列中,无需任何其他代码。