【问题标题】:Setting multiple properties at once in an XPO Object在 XPO 对象中一次设置多个属性
【发布时间】:2020-01-24 06:40:55
【问题描述】:

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

我有三个对象:

  • 书籍
  • 作者
  • 系列

 

  1. Book 具有 Authors 的集合(多对多)
  2. Author 有一个 Books 集合(多对多)
  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"); }
}

我考虑过以下几点:

  • 使用OnSaving 事件
  • 为我的关联添加一个设置器
  • 使用AfterConstruction

但由于我是初学者,我实际上无法从中得到任何东西。

很高兴您能提供所有帮助。

【问题讨论】:

  • 您只需插入带有书籍和作者的代码,请提供导致您问题的代码。

标签: c# devexpress xaf xpo


【解决方案1】:

没有任何使用 DevExpress 的经验,但如果您真的想要系列课程中的作者的道具,我会创建一个只读道具,从书籍列表中读取作者。比如:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
相关资源
最近更新 更多