方案: 我使用linq to entities查询数据库中的记录。所以我打开一个数据上下文,执行我的linq查询,并将返回的对象传递给我的业务逻辑层/表示层。
项目从表示层更新并发生保存事件,我将实体传递回bll / dal。
在我的dal中,我必须打开一个新的上下文,执行linq查询以重新选择我想要更新的对象,使用我传入的实体更新返回的记录,然后“SaveChanges()”。
我这样做了吗?看来如果我使用过ADO,我只需要进行2次数据库调用......初始选择和更新。现在我必须做3个电话(2个选择和1个更新)?似乎效率低下。评论?我希望他们在未来版本中能够改进这一点,因为这可能是高性能应用程序的一个大挫折...
答案 0 :(得分:0)
由于你正在使用'SaveChanges',我假设你正在使用Entity Framework。如果这是真的,您应该能够只附加您返回的实体。
实际上,这就是WCF RIA Services的工作方式,他们甚至将它包含在AttachAsModified扩展方法中:
http://msdn.microsoft.com/en-us/library/ff423414(VS.91).aspx