我的.net网络服务从数据库中读取实体并将其发送到客户端应用程序。
客户端应用程序修改实体中的某些字段,然后将实体提交回服务器以在DB中更新。
执行此操作的万无一失但费力的方法如下:
public void Update(MyEntity updatedEntity)
{
using (var context = new MyDataContext())
{
var existingEntity = context .MyEntities.Single(e => e.Id == updatedEntity.Id);
existingEntity.FirstName = updatedEntity.Name;
existingEntity.MiddleName = updatedEntity.MiddleName;
existingEntity.LastName = updatedEntity.LastName;
// Rinse, repeat for all members of MyEntity...
context.SubmitChanges();
}
}
我不想走这条路,因为它迫使我在MyEntity
中指定每个成员属性。如果MyEntity
的结构发生变化,这可能会中断。
如何接收传入的updatedEntity
并将其引入LINQ to SQL整体进行更新?
我尝试使用DataContext
的{{1}}方法实现这一目标,并进入痛苦的世界。
Attach()
是正确的方法吗?有人能指出一个如何做到这一点的工作实例吗?
答案 0 :(得分:1)
Attach
确实是一种方法。
那说......
执行此操作的万无一失但费力的方法类似于
如果你问我,这是正确的方式。
如果MyEntity的结构发生变化,这可能会中断
我个人希望在数据库架构发生变化时修改我的Update
业务方法:
基本上,我对此主题的看法是您不应该尝试将实体传递到业务层。我解释了why I think that in a previous answer。