我有两个班,第一个是“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");
}
}
}
答案 0 :(得分:0)
没有EF7。这是相关的EF Core文档示例:
class MyContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>()
.Property(b => b.Url)
.IsRequired();
}
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
}
https://docs.microsoft.com/en-us/ef/core/modeling/required-optional