C#中如何判断记录是否存在,实现仅新增不更新的逻辑?
解决思路与代码实现
嘿,刚接触C#和Entity Framework的话,确实容易对AddOrUpdate的默认行为有点懵,我来帮你调整代码实现你要的需求——只有当ClientSiteId=0的记录完全不存在时才新增,存在就啥也不做。
核心思路就是先用Any()方法检查数据库里是否已经有这条记录,再决定要不要执行新增操作:
// 先检查ClientSiteId=0的记录是否存在 var hasZeroRecord = context.Configuration.Any(c => c.ClientSiteId == 0); // 只有不存在的时候才执行新增 if (!hasZeroRecord) { context.Configuration.Add(new Configuration { ClientSiteId = 0, APIUserName = "Name", APIPassword = "Password" }); // 别忘了保存更改到数据库 context.SaveChanges(); }
为啥不用原来的AddOrUpdate?
因为AddOrUpdate的设计逻辑是:匹配到指定条件(这里是ClientSiteId=0)的记录时,会自动更新该记录的其他字段;只有完全匹配不到才会新增。而你要的是存在就跳过更新,所以直接用Any()做前置判断,再调用Add()就完全符合需求啦。
另外提一句:你代码里的new List.Configuration应该是笔误吧?应该是你的实体类Configuration,如果实体类名不一样,记得改成你实际的类名哦~
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

