在尝试查看表是否包含一组特定值时出现此错误。下面是抛出错误的地方。有谁知道如何解决这个异常并仍然检查我的表以避免插入重复的行?谢谢你!
var qryDepts = from p in AuthContext.Dept_User_Bridge
where p.UserID == editedUser.UserID
select p;
foreach (var dept in editedUser.DeptIDs)
{
var deptObj = new Dept_User_Bridge { UserID = editedUser.UserID, DeptID = dept };
//exception thrown here
if (!qryDepts.Contains(deptObj))
{
AuthContext.Dept_User_Bridge.Add(new Dept_User_Bridge
{
DeptID = dept,
UserID = editedUser.UserID
});
}
}
最佳答案
一件事是您想使用 ToList()
将数据加载到内存中。
var qryDepts = (from p in AuthContext.Dept_User_Bridge
where p.UserID == editedUser.UserID
select p).ToList();
然后,您可以尝试使用 Any()
。
if(!qryDepts.Any(x => x.UserID == deptObj.UserID))
{
...
}
关于c# - 使用 Linq 在 EF 中编辑用户时无法创建类型的常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44785573/