认识EF框架中Attach与Entry
本文链接:https://blog.csdn.net/u013986317/article/details/80318865
一.Attach(实体对象)
1.含义:将实体对象附加到上下文中;执行后的状态为unChanged。
2.返回值:实体对象
3.Attach执行成功的前提:
(1).如果上下文中已经存在与实体对象键值相同的对象A,则要求实体对象的内存地址必须与对象A相同;
否则报错:“已有相同键值的对象存在上下文中......”。
(2).如果上下文中不存在与实体对象键值相同的对象,则要求实体对象的内存地址必须不在上下文中;
否则会报错,系统认为在修改键值,这是不允许的。
二.Entry(实体对象)
1.含义:获取实体对象的代理类
2.返回值:代理类对象
3.如果实体对象不在当前上下文中(指内存地址),则代理类对象的State为Detached,
否则,为上下文中相应所处状态。