【问题标题】:Datacontext reset at c#在c#中重置数据上下文
【发布时间】:2013-09-06 07:43:41
【问题描述】:

我的 WP 应用可以编辑数据库中的数据,这是我使用 LINQ 查询获得的:

from item in db.SomeTable
where item.Id = 5
select new { Item = item}

然后我将该选择绑定到表单控件。 当我不想保存更改(没有 db.SubmitChanges() 调用)时,我调用另一个 LINQ 来重置字段,但我从 db 获得更改的源值(即使我使用 select new {} 运算符。 如果有什么方法可以重置为默认状态,以便我可以再次使用 LINQ 获取默认值?

【问题讨论】:

标签: c# linq data-binding


【解决方案1】:

如果您使用DataContext 的同一实例,您将获得其中任何实体的最新版本。您可能需要考虑更改您的应用程序以在最短的时间内保持DataContexts 的打开时间

【讨论】:

  • 你的意思是我需要在每个页面上创建新的DataContext实例?不是所有应用程序的全球应用程序?我想,当我使用new 运算符时,LINQ 会失去与DataContext 的链接。
  • @Wayne new 用于投影目的,与数据库值无关
  • 您的new 正在创建一个对象,该对象引用DataContext 中的对象 - 您可以调用复制构造函数来读取副本的当前对象,但随后推回编辑将是更多的工作。
  • @Wayne - 您应该查看以下 SO 答案。本质上,它每个请求创建一个DataContext。如果需要,您可以根据每页甚至特定方法对其进行调整。全局静态 DataContext 将跟踪请求之间的更改,这可能不是您所期望的。 stackoverflow.com/questions/940912/…
猜你喜欢
  • 2018-09-10
  • 1970-01-01
  • 2018-12-16
  • 2020-09-19
  • 2015-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多