Проверьте, существует ли запись в инфраструктуре Entity Framework
Может кто-нибудь, пожалуйста, скажите мне, как я проверяю, существует ли запись, если она существует, то ничего не делают, и если она не добавляет запись в базу данных?
Посмотрите мой код ниже:
if (isIpnValidated == true)
{
using (WebApplication1Entities db = new WebApplication1Entities())
{
Orders order = new Orders();
order.UserId = userId;
order.Date = System.DateTime.Now;
order.Transaction = txnId;
order.Amount = Convert.ToDecimal(mcGross);
order.Email = payerEmail;
order.Country = residenceCountry;
db.Orderss.Add(order);
db.SaveChanges();
}
}
Я просто хочу гарантировать отсутствие дублирования в базе данных.
Ответы
Ответ 1
Используйте Any
:
if (isIpnValidated == true)
{
using (WebApplication1Entities db = new WebApplication1Entities())
{
if (db.Orderss.Any(o => o.Transaction == txnId)) return;
Orders order = new Orders();
order.UserId = userId;
order.Date = System.DateTime.Now;
order.Transaction = txnId;
order.Amount = Convert.ToDecimal(mcGross);
order.Email = payerEmail;
order.Country = residenceCountry;
db.Orderss.Add(order);
db.SaveChanges();
}
}
Ответ 2
using (WebApplication1Entities db = new WebApplication1Entities())
{
var order = db.Orders.GetAll().FirstOrDefault(x=> x.Transaction == txnId);
if(order != null) // update
{
//.....
db.SaveChanges();
}
else
{
// new
}
}