Проверьте, существует ли запись в инфраструктуре 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
   }
}