我有一个Project
表和一个Organization
表。
Project
与Organization
有多对一的关系。
Project
的标量属性OrganizationName
引用了Name
Organization
我有一个创建视图,它是Project
模型的强类型。
我收集了Project.Organization.Name
属性的输入,如下所示:
<div class="editor-label">
@Html.Label("Organization Name")
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Organization.Name)
@Html.ValidationMessageFor(model => model.Organization.Name)
</div>
控制器像这样处理帖子:
[HttpPost]
public ActionResult Create(Project project)
{
if (ModelState.IsValid)
{
db.Projects.AddObject(project);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(project);
}
如何检查新project.Organization.Name
是否已存在于数据库中?如果是,我希望新的project
在数据库中引用该元组,而不是尝试再次添加它。
答案 0 :(得分:2)
UNIQUE
约束。在多用户环境中,这是唯一确定的方法。像这样:
[HttpPost]
public ActionResult Create(Project project)
{
if (ModelState.IsValid)
{
var org = db.Organizations.SingleOrDefault(o => o.Name.Equals(project.Organization.Name, StringComparison.CurrentCultureIgnoreCase));
if (org != null)
{
project.Organization = org;
}
db.Projects.AddObject(project);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(project);
}