我的应用程序要求:如果用户更改了任何属性 - 比如将数据输入文本框然后离开文本框 - 则必须立即将其更新到数据库。
我使用WPF和MVVM设计模式。我的所有实体都实现了INotifyPropertyChanged
。
如果CUSTOMER的任何属性发生了变化
Customer.cs
customerService.UpdateCustomer(this);
实体真的应该更新吗?或者将自己的更新引入数据库?
我的意思是,如果不在实体内,我怎么能立即对房产进行升级呢?
答案 0 :(得分:0)
实体不应自行更新;另一个服务(存储库)应该这样做。
您可以通过订阅实体的PropertyChanged
事件来诱导实体应该更新的存储库。
在事件处理程序中,您可以确保您的实体已更新:
Customer c = new Customer();
c.PropertyChanged += (s, e) => customerService.UpdateCustomer(c);
但是,在旁注中,我认为,只要房产发生变化,您的实体就应该更改,这是一个奇怪的要求。 这意味着交易毫无用处。我的意思是,你没有真正的“工作单位”,所有的变化都应该发生,或者根本不应该坚持下去? 接下来,它还会导致数据库的大量往返。