將Fluent API用作OR/M,併爲SO post中提到的以下列取得UNIQUE
。使用Fluent API進行唯一約束的服務器端驗證
對於服務器端驗證下面的代碼工作正常:
[HttpPost]
public ActionResult Save(Company company)
{
try
{
if (company.Id == 0)
_context.Companies.Add(company);
else
{
var companyInDb = _context.Companies.Single(c => c.Id == company.Id);
companyInDb.Name = company.Name;
}
_context.SaveChanges();
return RedirectToAction("Index", "Companies");
}
catch (System.Data.Entity.Validation.DbEntityValidationException ex)
{
var error = ex.EntityValidationErrors.First().ValidationErrors.First();
this.ModelState.AddModelError(error.PropertyName, error.ErrorMessage);
return View("CompanyForm");
}
}
如何驗證在服務器端的唯一值?
嘗試下面的代碼爲catch
在所有
catch (System.Data.SqlClient.SqlException ex)
{
this.ModelState.AddModelError("Duplicate Value", ex.Message);
return View("CompanyForm");
}
你跟你的做法得到什麼問題? –
我想將錯誤傳遞給'this.ModelState.AddModelError',所以我將在'view'中向用戶顯示輸入的值已經在表中可用。 –
是新的數據插入到分貝?如果是,每個新條目的標識是什麼? –