Asp.net mvc 如果数据库中已经存在该值,则如何更新该值,如果不存在,则插入新记录?

Asp.net mvc 如果数据库中已经存在该值,则如何更新该值,如果不存在,则插入新记录?,asp.net-mvc,excel,linq,Asp.net Mvc,Excel,Linq,我已经创建了一个验证来检查excel文件中的值,如果行值已经在数据库中。如果该值已存在,则我要创建操作,然后更新我的记录,如果数据库中不存在,则将其作为新记录插入 这里是完整的代码 [ValidateAntiForgeryToken] public ActionResult ImportDataAgens(HttpPostedFileBase excelfileRekn) { if (excelfileRekn == null || excelfileRekn.ContentLength

我已经创建了一个验证来检查excel文件中的值,如果行值已经在数据库中。如果该值已存在,则我要创建操作,然后更新我的记录,如果数据库中不存在,则将其作为新记录插入

这里是完整的代码

[ValidateAntiForgeryToken]
public ActionResult ImportDataAgens(HttpPostedFileBase excelfileRekn)
{
    if (excelfileRekn == null || excelfileRekn.ContentLength == 0)
    {
        ViewBag.Error = "Please Select File...";
        return View("ImportDataAgens");
    }
    else
    {
        if (excelfileRekn.FileName.EndsWith("xls") || excelfileRekn.FileName.EndsWith("xlsx"))
        {
            string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff");

            string filename = Path.GetFileName(excelfileRekn.FileName);
            string DocFileNames = newFileName + "-" + filename;
            string path = System.IO.Path.Combine(Server.MapPath("~/UploadFile/DataAgen/"), DocFileNames);

            if (System.IO.File.Exists(path)) System.IO.File.Delete(path);
                excelfileRekn.SaveAs(path);
                //read data from file excel 

                Excel.Application application = new Excel.Application();
                Excel.Workbook workbook = application.Workbooks.Open(path);
                Excel.Worksheet worksheet = workbook.ActiveSheet;
                Excel.Range range = worksheet.UsedRange;
                List<DMInformasiDataAgen> listTempRekn = new List<DMInformasiDataAgen>();

                for (int row = 3; row <= range.Rows.Count; row++)
                {

                    DMInformasiDataAgen rk = new DMInformasiDataAgen();

                    /* var NewUserIDAgent = ((Excel.Range)range.Cells[row, 1]).Text;

                    var NewNamaAgen = ((Excel.Range)range.Cells[row, 2]).Text;
                    //rk.NamaAgen = NewNamaAgen;*/
                    rk.SandiBank = ((Excel.Range)range.Cells[row, 1]).Text;
                    rk.UserIDAgen = ((Excel.Range)range.Cells[row, 2]).Text;
                    rk.NamaAgen = ((Excel.Range)range.Cells[row, 3]).Text;
                    var NewNomorIdentifikasiAgen = ((Excel.Range)range.Cells[row, 4]).Text;
                    rk.NomorIdentifikasiAgen = NewNomorIdentifikasiAgen;


                    if (db.DMInformasiDataAgens.Any(ac => ac.NomorIdentifikasiAgen.Equals((rk.NomorIdentifikasiAgen))))
                    {
                        int RowNo = row;
                        var hitung = listTempRekn.Count + 4;
                        ModelState.AddModelError("", "Nomor Identifikasi Sudah ada sebelumnya ! Pada baris ke " + hitung + " Pada EXCEL File !");
                        return View("ImportDataAgens");
                    }

                    rk.NomordanTanggalPerjanjian = ((Excel.Range)range.Cells[row, 5]).Text;


                    rk.TglPelaksanaan = ((Excel.Range)range.Cells[row, 6]).Value;

                    rk.JenisAgen = ((Excel.Range)range.Cells[row, 7]).Text;
                    rk.KlasifikasiAgen = ((Excel.Range)range.Cells[row, 8]).Text;
                    rk.JenisUsahaAgen = ((Excel.Range)range.Cells[row, 9]).Text;
                    rk.KodePos = ((Excel.Range)range.Cells[row, 10]).Text;
                    rk.LatitudeLongitudinal = ((Excel.Range)range.Cells[row, 11]).Text;
                    rk.KabupatenKota = ((Excel.Range)range.Cells[row, 12]).Text;
                    rk.ElectronicDevice = ((Excel.Range)range.Cells[row, 13]).Text;
                    rk.JaringanKantorBank = ((Excel.Range)range.Cells[row, 14]).Text;
                    rk.KategoriJaringanKantorBank = ((Excel.Range)range.Cells[row, 15]).Text;
                    rk.StatusPerkembanganAgen = ((Excel.Range)range.Cells[row, 16]).Text;
                    rk.Keterangan = ((Excel.Range)range.Cells[row, 17]).Text;

                    if (((Excel.Range)range.Cells[row, 18]).Value == null)
                    {

                        int RowNo = row;
                        var hitung = listTempRekn.Count + 4;
                        ModelState.AddModelError("", "Tolong periksa PERIODE Pada baris ke " + hitung + " Pada EXCEL File !");
                        return View("ImportDataAgens");
                    }

                    rk.Periode = ((Excel.Range)range.Cells[row, 18]).Value;
                    string valueA = System.Web.HttpContext.Current.User.Identity.Name;
                    rk.CreateBy = valueA;
                    rk.CreateDate = DateTime.Today;

                    if (db.DMInformasiDataAgens.Any(ac => ac.NomorIdentifikasiAgen.Equals((rk.NomorIdentifikasiAgen))))
                    {
                        int RowNo = row;
                        var hitung = listTempRekn.Count + 4;
                        ModelState.AddModelError("", "The Number Of Agent Already Exist on  " + hitung + " the Template EXCEL File !");
                        return View("ImportDataAgens");
                    }

                    if (ModelState.IsValid)
                    {
                        listTempRekn.Add(rk);
                        db.DMInformasiDataAgens.Add(rk);
                        db.SaveChanges();
                        var hitung = listTempRekn.Count;
                        //range.Rows.Count - 2;
                        TempData["AlertMessage"] = "Import Data Selesai " + hitung + " Records Sudah Tersimpan...";
                    }
                }

                return RedirectToAction("Index", "DataAgens");
        }
        else
        {
            ViewBag.Error = "File Type is incorrect <br>";
            return View("ImportDataAgens");
        }

    }

}

如何创建操作如果值已经存在(代理数),那么我的记录将更新,如果不存在,那么插入新记录

请给我发送示例查询更新,从我的案例rk.NomorIdentifikasiAgen值,它被用作参数。
var chkItem = x.firstOrDefault(your condition);
if(chkItem != null)
{
    //update your record.
}
else{
    //insert into database
}
var chkItem = x.firstOrDefault(your condition);
if(chkItem != null)
{
    //update your record.
}
else{
    //insert into database
}