我已经看过使用附件几次,特别是在操纵模型时。
using (var context = new MyEntities())
{
context.Attach(client);
context.SaveChanges();
}
从上下文看起来它只是对EntityFrameworks中的记录运行UPDATE
,但我也看到它在DELETE
语句中使用。所以我只能假设它只是获取指向数据库的指针?
有人能指出我正确的方向吗,我用Google搜索了一段时间,虽然我没有空出来,但我找不到任何好的解释(从概述和内部) 。
答案 0 :(得分:43)
正如您感兴趣的那样,您发布的代码无效
using (var context = new MyEntities())
{
context.Attach(client);
context.SaveChanges();
}
所有这一切都是将实体附加到跟踪图中,不对实体进行任何修改并保存。
在保存
中忽略对附加前对象所做的任何更改更有意思的是,如果它实际更新了一个属性,即:
using (var context = new MyEntities())
{
context.Attach(client);
client.Name = "Bob";
context.SaveChanges();
}