我正在使用 Code First 学习 asp.net mvc....
我有一个名为 Livro 的课程:
这是它的代码
public class Livro
{
[Key]
public int LivroId { get; set; }
[Required(ErrorMessage = "E necessario titulo")]
[MaxLength(100, ErrorMessage = "Titulo deve ter no maximo 100 caracteres")]
public string Titulo { get; set; }
public int AutorID { get; set; }
public virtual Autor Autor { get; set; }
}
如您所见,它有一个名为 Navigation 的属性和一个名为 的Autor
FK AutorId
。但是我在Livro
控制器上有这段代码(我没有写这段代码,VS 创建的不是我的类)。
[HttpPost]
public ActionResult Create(Livro livro)
{
if (ModelState.IsValid)
{
db.Livros.Add(livro);
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.AutorID = new SelectList(db.Autores, "AutorId", "Nome", livro.AutorID);
return View(livro);
}
如果我有[Required]
该Autor
属性,则modelState.IsValid
变为 false 因为livro.Autor
是null。所以我必须把它拿出来。
但我正在阅读 Julia Lerman 的一本书,它名为“Programming EF Code-First”,有时还有带有该属性的导航[Required]
属性。
我在这里想念什么?