3

我目前正在开发我的第一个 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 具有与两个屏幕相同的生命周期,这归结为应用程序生命周期。

我觉得工作单元模式(每个请求)和完整的数据绑定功能之间存在摩擦。请告诉我我错过了什么......

4

1 回答 1

0

LINQ to SQL 生成的类实现 INotifyPropertyChanged,因此您可以使用它来监视内存中原始对象的更改。

但是,您的两个屏幕都需要指向同一个实例,而不是拥有自己的副本(听起来是这种情况?)。

您没有说明您的 UI 屏幕使用哪种类型的绑定:如果它是 WPF/Silverlight 并且您正在使用绑定,您可能希望使用 MVVM 方法,其中数据源为两个屏幕共享。

于 2011-10-06T00:47:29.100 回答