实体是否应该访问服务层并执行更新/保存方法?

时间:2011-02-05 19:21:19

标签: c# service model updatemodel

我的应用程序要求:如果用户更改了任何属性 - 比如将数据输入文本框然后离开文本框 - 则必须立即将其更新到数据库。

我使用WPF和MVVM设计模式。我的所有实体都实现了INotifyPropertyChanged。 如果CUSTOMER的任何属性发生了变化

Customer.cs

customerService.UpdateCustomer(this);

实体真的应该更新吗?或者将自己的更新引入数据库?

我的意思是,如果不在实体内,我怎么能立即对房产进行升级呢?

1 个答案:

答案 0 :(得分:0)

实体不应自行更新;另一个服务(存储库)应该这样做。 您可以通过订阅实体的PropertyChanged事件来诱导实体应该更新的存储库。 在事件处理程序中,您可以确保您的实体已更新:

Customer c = new Customer();

c.PropertyChanged += (s, e) => customerService.UpdateCustomer(c);

但是,在旁注中,我认为,只要房产发生变化,您的实体就应该更改,这是一个奇怪的要求。 这意味着交易毫无用处。我的意思是,你没有真正的“工作单位”,所有的变化都应该发生,或者根本不应该坚持下去? 接下来,它还会导致数据库的大量往返。