C# MVC 5一对多虚拟ICollection返回null?

C# MVC 5一对多虚拟ICollection返回null?,c#,asp.net-mvc,asp.net-web-api,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Web Api,Asp.net Mvc 5,我有一个像这样的模型 public class MyModel { .... public virtual ICollection<Comm_ent> Comments { get; set; } } 在我的通信数据表中我有一个通过迁移创建的MyModelId键,但当我这样做时 public actionresult MyModelIndex(int? id) { var mymodel = _context.MyModels.singleordefault(u => u.I

我有一个像这样的模型

public class MyModel
{
....
public virtual ICollection<Comm_ent> Comments { get; set; }
}
在我的
通信数据表中
我有一个通过迁移创建的
MyModelId
键,但当我这样做时

public actionresult MyModelIndex(int? id)
{
var mymodel = _context.MyModels.singleordefault(u => u.Id == id)
return View(mymodel);
}

@Model.Comments
null
,即使我在
Comm\u entdatatable
中有条目。这在MVC4中工作,但升级到MVC5后返回空结果。如何在MVC5中执行此操作?请尝试在MyModel的构造函数中初始化集合:

public MyModel(){
   Comments = new HashSet<Comm_ent>();
}
publicmymodel(){
注释=新的HashSet();
}

尝试在MyModel的构造函数中初始化集合:

public MyModel(){
   Comments = new HashSet<Comm_ent>();
}
publicmymodel(){
注释=新的HashSet();
}

尝试添加
包括
方法:

public actionresult MyModelIndex(int? id)
{
var mymodel = _context.MyModels.Include(u => u.Comments).singleordefault(u => u.Id == id)
return View(mymodel);
}
不要忘记使用
语句添加以下

using System.Data.Entity;

尝试添加
包括
方法:

public actionresult MyModelIndex(int? id)
{
var mymodel = _context.MyModels.Include(u => u.Comments).singleordefault(u => u.Id == id)
return View(mymodel);
}
不要忘记使用
语句添加以下

using System.Data.Entity;

隐马尔可夫模型。。。你确定你按原样发布了代码吗?获取null的唯一方法是,如果您在属性上关闭了
virtual
,或者正在访问并非来自数据库的
MyModel
实例。当实体框架检索实体时,它实际上返回从实体类派生的代理。在该代理中,它重载属性(这就是为什么
virtual
很重要)以添加延迟加载功能。在属性上调用
get
(访问它的值),将始终在该点返回对象图或发出查询以检索它,而不会为null。嗯。。。你确定你按原样发布了代码吗?获取null的唯一方法是,如果您在属性上关闭了
virtual
,或者正在访问并非来自数据库的
MyModel
实例。当实体框架检索实体时,它实际上返回从实体类派生的代理。在该代理中,它重载属性(这就是为什么
virtual
很重要)以添加延迟加载功能。在属性上调用
get
(访问它的值),将始终在该点返回对象图或发出查询以检索它,而不是null。