实体框架7错误版本

时间:2017-05-29 14:36:04

标签: asp.net-mvc entity-framework relationship

我有两个班,第一个是“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");
            }
        }

    }

1 个答案:

答案 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