2012-01-12 59 views
0

情景: 我使用LINQ到实体查询记录在数据库中。于是我打开数据方面,做我的LINQ查询,并通过返回的对象关到我的商业逻辑层/表示层。更新实体对象断章取义要求3个呼叫?

项目会从表现层更新,并保存事件发生时,我通过实体回BLL/DAL。

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

我正在做这个对吗?看来,如果我用ADO我只有不得不作出2数据库调用......最初的选择和更新。现在我必须做3个电话(2选1更新)?似乎效率低下。注释?我希望他们在未来的版本中改进这一点,因为这可能是在高性能的应用程序大的垮台......

回答

0

由于您使用“的SaveChanges”,我假设你正在使用实体框架。如果这是真的,你应该能够附上你的返回的实体。

事实上,这是WCF RIA服务是如何工作的,他们甚至把它包装起来的AttachAsModified扩展方法给你:

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