webapi实体框架 - 返回嵌套类的最佳方法

时间:2016-07-29 19:11:41

标签: entity-framework asp.net-web-api

基于这个使用webapi实体框架的图表,最好的说法是什么,给我回复所有Menus.text ....其中AspNetUsers.Username = xxxx。

我想我需要从MenusController开始,然后说返回菜单(包括权限,包括组,包括AspNetUsers,其中username = x。

这是最好的方法吗?

sql diagram

1 个答案:

答案 0 :(得分:1)

如果您只需要菜单的文本字段,不使用include,最好使用投影加载所需的字段如下:

var menuTextList = db.Users.Where(e=> e.Username = "xxxx")
               .Select(e=> e.Group)
               .SelectMany(e=> e.Permissions)
               .Select(e=> e.Menu)
               .Select(e=> e.text)
               .Distinct()
               .ToList();

以及菜单中的所有字段,如下所示:

var munuList = db.Users.Where(e=> e.Username = "xxxx")
               .Select(e=> e.Group)
               .SelectMany(e=> e.Permissions)
               .Select(e=> e.Menu)
               .Distinct()
               .ToList();