【问题标题】:DbContext doesn't update properties of objectsDbContext 不更新对象的属性
【发布时间】:2014-01-05 15:16:57
【问题描述】:

我们有一个全局的DataManager,它持有和管理一个DbContext

我们将名为File 的表的所有对象绑定到树视图。

return this.ArchiveContext.File.Where(f => f.parent_id == null).ToList<File>();

使用数据绑定更新新项目,这很棒。
不幸的是,像name 这样的属性没有。

我们认为最好每 x 秒更新一次。
我们还发现,除非重新创建上下文,否则不会更新任何属性。

这显然是错误的做法。

使用DbContext 时的最佳做法是什么?

【问题讨论】:

  • 您如何尝试更新属性?你是在 XAML 上绑定的吗?
  • 最佳实践是在您的数据访问层深处根据需要构建和处置DbContext
  • @KeithPayne 调用SaveChanges 不会在改变模型时保存任何更改。我该如何解决这个问题?
  • @KeithPayne 这取决于软件的设计。如果满足存储静态 dbContext 的要求,那应该不是问题。
  • @NSAddict 这是因为您不再有代理类,因此 DbContext 不会跟踪您的对象。

标签: c# .net wpf entity-framework


【解决方案1】:

这是因为当您使用从静态 dbcontext 返回的 ToList() 时,您使用的是完全不同的对象数组。假设您在列表或类似列表中显示您的对象数组。您可以使用新分配的对象设置 DataSource 属性,它会刷新您的所有列表。

listBox1.DataSource = null;
listBox1.DataSource = NewList;

【讨论】:

    猜你喜欢
    • 2013-01-18
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-16
    • 2012-03-16
    • 2016-07-13
    • 2020-07-04
    相关资源
    最近更新 更多