在 XPO 对象中一次设置多个属性
Setting multiple properties at once in an XPO Object
我一直在尝试使用 C# 和 DevExpress,遇到了一种我找不到简单解决方案的情况。
我有三个对象:
- 图书
- 作者
- 系列
- A
Book
有 Author
的集合(多对多)
- 一个
Author
有一个 Book
的集合(多对多)
- 一个
Series
有两个集合; Books
和 Authors
Book
和 Author
都有一个 Series
集合
我的问题是,每当我将 Book
添加到 Series
时,那个 Book
的 Author
(s) 也应该添加到 Series
.
[Association("SeriesBooks")]
public XPCollection<Book> Books => GetCollection<Book>(nameof(Books));
[Association("SeriesAuthors")]
public XPCollection<Author> Authors
{
get { return GetCollection<Author>("Authors"); }
}
我考虑了以下几点:
- 使用
OnSaving
事件
- 为我的关联添加 setter
- 使用
AfterConstruction
但是由于我是初学者,所以我实际上并没有从中得到任何东西。
如果你能提供所有帮助,我会很高兴。
没有任何使用 DevExpress 的经验,但如果你真的想要系列中作者的道具 class 我会创建一个只读道具,从书籍列表中读取作者.类似于:
public List<Author> Authors {
get {
Books.SelectMany(x => x.Authors).ToList();
}
}
它将消除维护单独的作者列表所涉及的工作。对系列中任何书籍的任何更改,包括书籍本身的添加和删除,或对书籍作者的任何更改,都会自动反映在系列中,无需任何其他代码。
我一直在尝试使用 C# 和 DevExpress,遇到了一种我找不到简单解决方案的情况。
我有三个对象:
- 图书
- 作者
- 系列
- A
Book
有Author
的集合(多对多) - 一个
Author
有一个Book
的集合(多对多) - 一个
Series
有两个集合;Books
和Authors
Book
和Author
都有一个Series
集合
我的问题是,每当我将 Book
添加到 Series
时,那个 Book
的 Author
(s) 也应该添加到 Series
.
[Association("SeriesBooks")]
public XPCollection<Book> Books => GetCollection<Book>(nameof(Books));
[Association("SeriesAuthors")]
public XPCollection<Author> Authors
{
get { return GetCollection<Author>("Authors"); }
}
我考虑了以下几点:
- 使用
OnSaving
事件 - 为我的关联添加 setter
- 使用
AfterConstruction
但是由于我是初学者,所以我实际上并没有从中得到任何东西。
如果你能提供所有帮助,我会很高兴。
没有任何使用 DevExpress 的经验,但如果你真的想要系列中作者的道具 class 我会创建一个只读道具,从书籍列表中读取作者.类似于:
public List<Author> Authors {
get {
Books.SelectMany(x => x.Authors).ToList();
}
}
它将消除维护单独的作者列表所涉及的工作。对系列中任何书籍的任何更改,包括书籍本身的添加和删除,或对书籍作者的任何更改,都会自动反映在系列中,无需任何其他代码。