加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC实体框架关系绑定

发布时间:2020-12-16 09:53:00 所属栏目:asp.Net 来源:网络整理
导读:我正在为我的MVC4项目使用Entity Framework 5.0.这有问题.当我将db模型提供给任何视图时,控制器发送没有关系的模型 例; 我有User类和关系部门 当我在控制器中使用它时 using(context){ var user = context.Find(id); string department = user.Department.Na
我正在为我的MVC4项目使用Entity Framework 5.0.这有问题.当我将db模型提供给任何视图时,控制器发送没有关系的模型

例;

我有User类和关系部门

当我在控制器中使用它时

using(context)
{
  var user = context.Find(id);
  string department = user.Department.Name;
}

它在上下文中调用时工作.但是当我这样做的时候

using(context)
{
  var user = context.Find(id);
  return View(user);
}

并在视图中调用

Model.Department.Name

我收到了错误.

这是我的答案但不好

using(context)
{
  var user = context.Find(id);
  string department = user.Department.Name;
  return View(user);
}

当我尝试在视图中使用Model.Department.Name时,我没有错误,当我使用类作为模型时,我必须为每个关系做到这一点.这个问题有更好的解决方案吗?我希望在视图中使用所有关系而不在控制器中调用它们.

我希望你能理解我,对不起我的英语.

解决方法

在您的DbContext上,您可以使用.Include方法急切地加载您需要的关系:

context.Users.Include(u => u.Department).FirstOrDefault(u => u.Id == id);

或者如果您使用的是旧版本的实体框架,则此方法的通用版本可能不可用:

context.Users.Include("Department").FirstOrDefault(u => u.Id == id);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读