如何在单个MVC EF查询中使用2个include语句?

时间:2012-06-28 01:41:04

标签: asp.net-mvc entity-framework jsonresult

我正在尝试编写一个包含2个连接的查询。

  • 1 StoryTemplate可以有多个故事
  • 1个故事可以有多个StoryDrafts

我在StoryDrafts对象上开始查询,因为它是链接到UserId的地方。

我没有将StoryDrafts对象直接引用到StoryTemplates对象。我如何正确构建此查询?

    public JsonResult Index(int userId)
    {
        return Json(
            db.StoryDrafts
                .Include("Story")
                .Include("StoryTemplate")
                .Where(d => d.UserId == userId)
            ,JsonRequestBehavior.AllowGet);
    }

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果适用于您,请尝试展平您的层次结构。这是一个示例,您可能希望根据需要对其进行自定义。

var result = from c in db.Customers
                    join o in db.Orders 
                    on c equals o.Customers
                    select new
                               {
                                   custid = c.CustomerID,
                                   cname = c.CompanyName,
                                   address = c.Address,
                                   orderid = o.OrderID,
                                   freight = o.Freight,                                   
                                   orderdate = o.OrderDate

                               };

如果奉承不符合您的要求,那么您需要使用返回 a Nested Group.的查询。最后,请查看以下链接以获取更多参考资料 - { {3}}