gpt4 book ai didi

c# - 唯一列,检查现有记录,最佳方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:14:24 25 4
gpt4 key购买 nike

假设我有一个包含 PK 列、一些其他列和一个必须唯一的列的表。

哪种方法更适合处理使用已存在的唯一键添加新记录的可能性?

查询数据库,例如

if (!_db.MyTable.Any(mt => mt.UniqueCode == newRecord.UniqueCode))
_db.MyTable.Add(newRecord);
else //handle response

或者不检查并处理错误就尝试添加?例如

try 
}
_db.MyTable.Add(newRecord);
}
catch (Exception e)
{
//handle response
}

在第一种方法中,我看到的缺点是它需要调用 2 次 db。 (我离开了 _db.SaveChanges()),但我一直觉得最好避免异常。如何?哪一个对性能更好?有没有更好的办法?

最佳答案

第二种方法要好得多,因为第一种方法不能保证在多线程环境中工作。可能会在检查和插入之间添加一条新记录,从而导致重复记录或异常。

一般来说,最好让数据库在可能的时候验证数据。即使在应用层可能难以编码的复杂场景中,数据库引擎也能保证唯一性。

关于c# - 唯一列,检查现有记录,最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com