【问题标题】:Entity Framework 7 error versionEntity Framework 7 错误版本
【发布时间】: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


    【解决方案1】:

    没有 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

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      • 2017-01-19
      • 2015-11-07
      • 1970-01-01
      相关资源
      最近更新 更多