【发布时间】:2017-05-29 14:36:04
【问题描述】:
我有两个课,第一个是“Movimentacao”:
public class Movimentacao
{
public int Id { get; set; }
public decimal Valor { get; set; }
public DateTime Data { get; set; }
public int UsuarioId { get; set; }
public Usuario Usuario { get; set; }
}
和另一个“Usuario”:
public class Usuario
{
public int Id { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
}
给出错误:“对象的引用没有为对象的实例定义”
类 index.cshtml:
@foreach (var m in Model)
{
<tr>
<td>@m.Id</td>
<td>@m.Usuario.Id></td> //Error line
<td>@m.Valor</td>
</tr>
}
在版本 6 的类上下文中使用“DbModelBuilder”但在版本 7 中不存在,我想知道我能做什么,我可以用什么代替 HasRequired():
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Movimentacao>()
.HasRequired(c => c.UsuarioId);
base.OnModelCreating(modelBuilder);
}
类控制器:
public class MovimentacaoController : Controller
{
private MovimentacaoDAO movimentacaoDAO;
private UsuarioDAO usuarioDAO;
public MovimentacaoController(MovimentacaoDAO movimentacaoDAO, UsuarioDAO usuarioDAO)
{
this.movimentacaoDAO = movimentacaoDAO;
this.usuarioDAO = usuarioDAO;
}
public ActionResult Index()
{
return View(movimentacaoDAO.Lista());
}
public ActionResult Form()
{
ViewBag.Usuarios = usuarioDAO.Lista();
return View();
}
public ActionResult Adiciona(Movimentacao movimentacao)
{
if (ModelState.IsValid)
{
movimentacaoDAO.Adiciona(movimentacao);
return RedirectToAction("Index");
}
else
{
ViewBag.Usuarios = usuarioDAO.Lista();
return View("Form");
}
}
}
【问题讨论】:
标签: asp.net-mvc entity-framework relationship