Ich habe zwei Klasse der erste "movimentação" ist:Entity Framework 7 Fehler Version
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; }
}
und die andere "Usuario":
public class Usuario
{
public int Id { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
}
die Fehler geben: „Referenz des Objekts ist nicht für eine Instanz des Objekts definiert“
Klasse index.cshtml:
@foreach (var m in Model)
{
<tr>
<td>@m.Id</td>
<td>@m.Usuario.Id></td> //Error line
<td>@m.Valor</td>
</tr>
}
In Klassenkontext der Version 6 ist die Verwendung "DbModelBuilder", aber nicht in der Version 7 gibt es i bekannten möchte, was ich tun kann, was kann ich anstelle von HasRequired() verwenden:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Movimentacao>()
.HasRequired(c => c.UsuarioId);
base.OnModelCreating(modelBuilder);
}
Klasse Controller:
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");
}
}
}