LINQ to SQL存储库模式:保存实体

时间:2011-06-21 16:19:59

标签: linq-to-sql repository-pattern dto

我们正在使用LINQ to SQL以及存储库模式和DTO。我的问题是:在将实体保存到数据库时,Save()方法接受DTO作为参数。保存一个新的似乎非常简单,我只是实例化一个新实体并填充DTO中的值,然后在数据上下文中调用SubmitChanges()。

但是,编辑现有实体时会发生什么?加载原始值的最佳方法是什么?我的直觉是创建一个新实体,从DTO加载值,然后将它()附加到datacontext,但现在我已经丢失了任何更改跟踪,因为我没有考虑原始值。

你们怎么处理这个?

1 个答案:

答案 0 :(得分:1)

由于您使用的DTO(我假设与您的实体不同),您通常会从上下文中检索实体,然后将实体中的值设置/比较到DTO。


如果我的假设是错误的,通常人们只是将实体附加到上下文,并保存更改。