如何在DB中获取属性对象的属性

时间:2012-12-03 20:52:38

标签: database entity-framework object asp.net-mvc-4

我正在寻找一段时间,我找不到任何解决方案,即使在这篇文章中也是如此:

asp.net mvc 3 - How do you load children AND grand-children of an entity?

基本上我有3个班级:

Offer.cs,Application.cs和Contractor.cs

1要约包含应用程序集

1个申请包含1个承包商。


基本上我想抓住查看承包商对象,它将变为空。 谢谢你的帮助!!!!

以下是代码:

查看

@foreach (var item in Model)
{
foreach (var candidate in item.Candidates)
    {
       Here is the problem #### canditate.Contractor == null ###

控制器

public ActionResult Index () {
 return View (db.Offers.Include(c => c.Location).Include(c => c.Candidates).ToList ());
}

模型

public class Offer {

public Location Location { get; set }
public ICollection<Application> Candidates { get; set; }

}

public class Application {
    public Contractor Contractor { get; set}
}

2 个答案:

答案 0 :(得分:0)

你可以尝试

db.Offers.Include("Location.Candidates").ToList()

这应该为这些位置加载所有位置和所有相关候选者(虽然我不知道使用lambdas执行此操作的方法)。

答案 1 :(得分:0)

你可以使用......

return View(db.Offers
    .Include(o => o.Location)
    .Include(o => o.Candidates.Select(c => c.Contractor))
    .ToList());

...在您的Index操作中,以便将Contractor个大孩子与Candidates个孩子一起加载。