EF6 怎么判断 一个对象是不是在他的跟踪对象列表中

逐渐变晕 2019-04-19 11:26:57
比如我有一个对象entity(有可能是新建的 或者从EF查询得到的)

如果EF DBcontext 的跟踪对象集合中没有entity 则执行
dbContext.Set<TEntity>().Remove(entity);
则会出错
只能这样
 DbEntityEntry<TEntity> entry = dbContext.Entry(entity);
if (entry.State == EntityState.Detached)
{
// dbSet.Attach(entity);
entry.State = EntityState.Deleted;
}


但是上面这个代码,如果DBcontext 本身就包含entity这个对象,
也会出错,提示主键冲突,
所有问一下,有没有办法可以判断DBcontext 集合中有没有entity这个对象 或者也能知道有没有对应主键的对象存在,
(先find查询出对象,就多了一次查询,)
...全文
254 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
逐渐变晕 2019-04-19
  • 打赏
  • 举报
回复
或者就是这个意思:
EF怎么判断一个新建的对象能否附加到DbContext本地跟踪列表中,比如我想更新一个对象,新建了一个更新的对象,但是这时候我不知道DbContext的本地视图中有没有主键名一样的对象存在,然后附加就出错了,这该怎么处理

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧