【发布时间】:2012-07-01 22:49:20
【问题描述】:
我在 EF 4.3.1 中工作,在插入方面一切都进展顺利。但现在我正试图将我插入的对象拉回来以显示在我的 MVC3 项目的视图中并且遇到问题。
在我的 DAL 中,我有以下方法从数据库中获取 Church 对象:
public virtual TEntity GetById(object id)
{
return _db.Find(id);
}
对象本身如下所示:
public class Church
{
//Basic Properties
public int Id { get; set; }
public string Name { get; set; }
public string Website { get; set; }
... (some properties)
//Church Contacts and Services
public List<Contact> Contacts { get; set; }
public List<Service> Services { get; set; }
....
}
请注意最后两个属性:联系人和服务。每个都是我数据库中的 1:Many 表。不过,Find() 似乎没有返回任何内容。它只是将这两个属性设置为 null。
数据库中的实际条目看起来就像我期望的那样。每个教会都有一些与之相关的联系人和服务。然而,它永远不会映射回模型......
有什么想法吗?
编辑是的,看起来直到我明确告诉它才加载这些属性。我通过将其添加到我的 ChurchRepository(从 GenericRepository 继承)修改了我的查询
public override Church GetById(object id)
{
return _db.Include("Contacts").Include("Services").FirstOrDefault(c => c.Id == (int)id);
}
【问题讨论】:
-
这也是一个非常有用的链接:stackoverflow.com/questions/5764391/…
标签: c# asp.net-mvc-3 entity-framework