You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:28:02