首页 > 解决方案 > C# Entity Framework LINQ 检查是否在 RemoveRange 之前使用对象列表分离上下文

问题描述

我正在编写一个 LINQ to SQL 来执行RemoveRange. 以下正在工作。

ctx.Table1Set.AttachRange(records);
ctx.Table1Set.RemoveRange(records);

我必须这样做,AttachRange否则我RemoveRange会抛出一个异常,它在ObjectManager.

我想检查我的 ctx 是否附加了参数,记录列表,它是两个字段的列表,ID 和 CODE

1  1001
2  1002 
3  1003

我使用以下代码研究了其他帖子

var entry = context.Entry(ug);
if (entry.State == EntityState.Detached)
{
    context.MY_GROUPS.Attach(ug);
}

但这是针对一个对象而不是对象列表。

有没有办法用列表检查上下文状态?

如果我有一个List<Table1>又名记录列表,

如何检查上下文 ctx 是否未附加对象列表?

标签: c#entity-frameworklinq

解决方案


由于声誉要求,我无法发表评论,但调试此问题的一种方法是在 newrecords 上尝试 foreach,然后在 try catch 内的记录上尝试 .remove()。


推荐阅读