我目前正在开发我的第一个 Linq-to-Sql 应用程序。 我已经实现了像这样具有较短 dataContext 生命周期的数据访问方法:
public IProduct GetByCode(string code)
{
using (var db = new dataContext())
{
return db.Products.SingleOrDefault(e => e.Code == code);
}
}
我想知道如何获取 clr-properties 的更改通知。 当您只有一个 dataContext 时,这不是问题。
所以问题是:如何获取实体的内存更改?!
我有一个可以在两个不同屏幕中修改的实体。一个屏幕上的更新应该在另一个屏幕上可见。我看到的唯一可能性是让 dataContext 具有与两个屏幕相同的生命周期,这归结为应用程序生命周期。
我觉得工作单元模式(按请求)和完整的数据绑定(bind)功能之间存在摩擦。请告诉我我缺少什么...
最佳答案
LINQ to SQL 生成的类实现 INotifyPropertyChanged,因此您可以使用它来监视内存中原始对象的更改。
但是,您的两个屏幕都需要指向同一个实例,而不是拥有自己的副本(听起来是这样吗?)。
您没有说明您的 UI 屏幕使用什么类型的绑定(bind):如果它是 WPF/Silverlight 并且您正在使用绑定(bind),您可能想要使用 MVVM 方法,其中数据源为两个屏幕共享。
关于linq-to-sql - 在 Linq to Sql 中使用 UoW 模式失去数据绑定(bind)的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3330278/