linq-to-sql - 在 Linq to Sql 中使用 UoW 模式失去数据绑定(bind)的可能性

标签 linq-to-sql datacontext unit-of-work

我目前正在开发我的第一个 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/

相关文章:

asp.net-mvc - 在单独的程序集中使用 MVC 2.0 和模型

.net - Linq:获取DataContext中所有表的列表

wpf - 如何使用具有持久 ViewModel(s) 的 DataTemplate

entity-framework - 架构设计 - MVC、EF、Rep、UoW、WCF、DI

c# - 如何以存储库模式读取 iCollection 数据 - ASP.NET- MVC Entity Framework

c# - 如何在组合框的顶部插入项目?

c# - Linq-to-SQL WHERE IN 语句返回的内容超出预期

c# - 转换通用列表的代码清晰度?

c# - ViewModel 中的属性未显示在 View 中

c# - 类应该同时实现 IAsyncDisposable 和 IDisposable 吗?