C# 检查数据库中的现有记录我调用web api
我正在调用一个web api并通过控制器将记录保存在数据库中,我希望每次调用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
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,因此这是通过客户端完成的唯一方法。我需要检查本地数据库是否存在记录。