entity-framework - MVC在添加到表之前检查记录是否存在
问题描述
我有以下问题。如果我每次创建新记录时都使用 dbcontext 向我的数据库表中插入一条记录。因此,例如,如果 Stadt 和 Postleitzahl 已经存在于表中,我的应用程序应该使用记录的 Id 属性来创建具有相同 Postleitzahl 和 Stadt 值的新的自动生成的 Id。我哪里错了?我在 Controller 中的 Create 方法如下所示:
public ActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(CreateKundeViewModel viewModel)
{
if (ModelState.IsValid)
{
var kunde = new Kunde()
{
Vorname = viewModel.Vorname,
Nachname = viewModel.Nachname,
Strasse = viewModel.Strasse,
Hausnummer = viewModel.Hausnummer,
Email = viewModel.Email,
Telefon = viewModel.Telefon,
AGB = viewModel.AGB,
Whatsapp = viewModel.Whatsapp,
Web = viewModel.Web,
Aktiv = viewModel.Aktiv
};
var anrede = new Anrede()
{
AnredeText = viewModel.Anrede,
AnredeTyp = 1
};
var stadt = new Stadt()
{
Ort = viewModel.Ort,
Postleitzahl = viewModel.Postleitzahl
};
var hund = new Hund()
{
Name = viewModel.HundName,
Groesse = viewModel.Groesse,
Gewicht = viewModel.Gewicht,
Geburtsdatum = viewModel.Geburtsdatum
};
var rasse = new Rasse()
{
Rassename = viewModel.Rassename
};
var kastriert = new Kastriert()
{
Kastrierttyp = viewModel.Kastriertname
};
var geschlecht = new Geschlecht()
{
Geschlechtstyp = viewModel.Geschlecht
};
_context.Anredes.Add(anrede);
_context.Stadts.Add(stadt);
_context.Kundes.Add(kunde);
_context.Rasses.Add(rasse);
_context.Kastrierts.Add(kastriert);
_context.Geschlechts.Add(geschlecht);
_context.Hunds.Add(hund);
_context.SaveChanges();
}
return RedirectToAction("Index", "Kunde");
}
解决方案
您可以检查记录是否已经存在,然后添加它,如下所示:
if(_context.Kundes.Count(e => e.Vorname== kunde.Vorname)==0)
{
_context.Kundes.Add(kunde);
}
推荐阅读
- python - ValueError:未知标签类型:“连续”-KNeighborsClassifier
- swift - SwiftUI 按钮在出现时更改文本大小
- sparql - SPARQL 中是否有“DISTINCT ON”等价物?
- html - nextjs 应用上的 Tailwind CSS 响应行为
- c# - 拆分包含“\”的字符串
- python - Python,从CMD运行时脚本在某一行停止
- python - tkinter 使用按钮运行另一个类的功能
- angular - node_modules/chart.js/types/index.esm.d.ts(522,5) 中的错误:错误 TS2304:找不到名称“OffscreenCanvasRenderingContext2D”
- ios - ITMS-90174:“缺少配置文件 - 应用程序必须在名为 embedded.mobileprovision 的文件中包含配置文件。” 关于上传颤动
- reactjs - React Forms:解释 handleChange() 函数