C# 检查数据库中的现有记录我调用web api

C# 检查数据库中的现有记录我调用web api,c#,asp.net-web-api,entity,C#,Asp.net Web Api,Entity,我正在调用一个web api并通过控制器将记录保存在数据库中,我希望每次调用api时检查数据库中是否存在记录如果是,则不保存,如果不是,则保存 var client = new WebClient(); var text = client.DownloadString("https://www.test.com/api/all-users?name=testusername%20&pass=334432"); var wclients = JsonCon

我正在调用一个web api并通过控制器将记录保存在数据库中,我希望每次调用api时检查数据库中是否存在记录如果是,则不保存,如果不是,则保存

 var client = new WebClient();
        var text = client.DownloadString("https://www.test.com/api/all-users?name=testusername%20&pass=334432");
        var wclients = JsonConvert.DeserializeObject<dynamic>(text);
        List<apicli> list1 = new List<apicli>();
        var clie = new apicli();


        if (wclients.message == "success")
        {
            var data = wclients.data;
            //var account = wclients.account;
            ViewBag.test = data;

            foreach(var item in ViewBag.test)
            {

                clie.Email = item.email;
                clie.Name = item.name;
                clie.Aff = item.affiliated_id;

                foreach(var item1 in @item.account.real)
                {
                    clie.Login = item1.login;
                    clie.password = item1.pass;

                }
                list1.Add(clie);
                db.apiclis.AddRange(list1);
                db.SaveChanges();
            };
        }
var client=new WebClient();
var text=client.DownloadString(“https://www.test.com/api/all-users?name=testusername%20&pass=334432");
var wclients=JsonConvert.DeserializeObject(文本);
List list1=新列表();
var clie=new apicili();
如果(wclients.message==“成功”)
{
var data=wclients.data;
//var账户=wclients.account;
ViewBag.test=数据;
foreach(ViewBag.test中的var项)
{
clie.Email=item.Email;
clie.Name=item.Name;
clie.Aff=item.associated\u id;
foreach(var item1 in@item.account.real)
{
clie.Login=item1.Login;
clie.password=item1.pass;
}
列表1.添加(clie);
db.apiclis.AddRange(列表1);
db.SaveChanges();
};
}

我假设您需要这样的东西,尽管您需要检查每个记录的唯一id是什么:

 foreach(var item in data){
            var c = new apicli  {
                Email = item.email,
                Name = item.name,
                Aff = item.affiliated_id
                Login = item.account.real.LastOrDefault()?login??"",
                Login = item.account.real.LastOrDefault()?pass??""
            }
            if(!db.apiclis.Any(a => a.Email == c.Email && a.Name == c.Name && a.Aff == c.Aff)){
                db.apiclis.Add(c);
            }
        }

这里我假设email+name+aff=唯一标识符

这不应该是客户端的任务,而是接收api端的任务。如果存在重复的api,api将返回错误,您应该相应地处理错误。出于对逻辑的考虑,我还想强调一个事实,即要测试记录的存在性,您需要两个调用,而不是一个调用。我无法修改api,因此这是通过客户端完成的唯一方法。我需要检查本地数据库是否存在记录。