3
我在我的SQL Server中有一个基于两列(AbsoluteCounter,TimeMfrAudit)的唯一键约束。如果我尝试通过实体框架添加对象列表,如何检查我的一个对象是否会违反此约束而不抛出会使我的整个context.aveChanges()失败的异常?我正在寻找这里的最佳做法。唯一键约束签入实体框架
感谢
我在我的SQL Server中有一个基于两列(AbsoluteCounter,TimeMfrAudit)的唯一键约束。如果我尝试通过实体框架添加对象列表,如何检查我的一个对象是否会违反此约束而不抛出会使我的整个context.aveChanges()失败的异常?我正在寻找这里的最佳做法。唯一键约束签入实体框架
感谢
这将是违反唯一键约束的所有对象:
var violatingObjects = listOfObjectsToAdd
.Where(o => context.Objects.Any(oInDb =>
oInDb.AbsoluteCounter == o.AbsoluteCounter &&
oInDb.TimeMfrAudit == o.TimeMfrAudit))
.ToList();
这是每个对象一个EXISTS
数据库查询在列表中。如果您只想知道违反约束条件的第一个对象,请使用FirstOrDefault()
而不是ToList()
。如果您只想知道是否有任何违规物品使用Any()
而不是ToList()
。当第一个对象被发现时,迭代应该停止。