【问题标题】:Updating an entity object out of context requires 3 calls?脱离上下文更新实体对象需要 3 次调用?
【发布时间】:2012-01-12 20:09:00
【问题描述】:

场景: 我使用 linq to 实体查询数据库中的记录。因此,我打开一个数据上下文,执行我的 linq 查询,并将返回的对象传递给我的业务逻辑层/表示层。

从表示层更新项目并发生保存事件,我将实体传递回 bll/dal。

在我的 dal 中,我必须打开一个新上下文,执行 linq 查询以重新选择我要更新的对象,使用我传入的实体更新返回的记录,然后“SaveChanges()”。

我这样做对吗?似乎如果我使用了 ADO,我只需要进行 2 次数据库调用……初始选择和更新。现在我必须打 3 次电话(2 次选择和 1 次更新)?似乎效率低下。注释?我希望他们在未来的版本中改进这一点,因为这可能是高性能应用程序的一大败笔……

【问题讨论】:

    标签: linq


    【解决方案1】:

    由于您使用的是“SaveChanges”,我假设您使用的是实体框架。如果这是真的,您应该可以附加返回的实体。

    确实,这就是 WCF RIA 服务的工作方式,他们甚至为您将其封装在 AttachAsModified 扩展方法中:

    http://msdn.microsoft.com/en-us/library/ff423414(VS.91).aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-19
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多