如何在同一查询linq上使用Where,Group By,Select和OrderBy?

费尔南多·派瓦(Fernando Paiva)

我正在尝试使用where,group by和select同时创建linq,但我无法做到这一点,并且总是抛出异常。

我该如何运作?

林克

public ActionResult getParceiros(){
            //return all partners
            IList<ViewParceirosModel> lista = new List<ViewParceirosModel>();
            lista = context.usuarios.Where(u => u.perfil == RoleType.Parceiro)
                                    .Select(x => new ViewParceirosModel
                                    {
                                        id = x.id,
                                        nomeParceiro = x.nome,
                                        emailAcesso = x.email
                                    })
                                    .GroupBy(x => x.id)
                                    .OrderBy(x => x.nomeParceiro)
                                    .ToList();



            return View(lista);
        }

例外

在此处输入图片说明

哈拉德·科普浦斯

您的程序无法执行您想要的操作。las,您忘了告诉您您想要什么,您只向我们展示了您不需要的东西。我们不得不猜测。

因此,您有一系列的Usarios。

IQueryable<Usario> usarios = ...

我不需要知道Usario是什么,我只需要知道它具有某些属性即可。

您的第一步是使用Where丢弃一些Usarios :您只想保留Perfil等于RoleType.Parceirdo的这些usarios:

// keep only the Usarios with the Perfil equal to RoleType.Parceirdo:
var result = usarios.Where(usario => usario.Perfil == RoleType.Parceirdo)

换句话说:从Usarios的序列中,仅保留Perfil等于RoleTyoe.Parceirdo的那些Usarios。

结果是Usarios的子集,它是Usarios的序列。

在此结果的每个Usario中,您想要选择一些属性并将其放入一个ViewParceirosModel中:

var result = usarios.Where(usario => usario.Perfil == RoleType.Parceirdo)
    .Select(usario => new ViewParceirosModel
    {
        Id = x.id,
        NomeParceiro = x.nome,
        EmailAcesso = x.email,
    })

换句话说:从您在何处之后保存的每个Usario中,获取ID,Nome和Email以创建一个新的ViewParceirosModel。

结果是一系列ViewParceirosModels。如果添加ToList(),则可以将结果分配给变量列表。

但是您的GroupBy破坏了乐趣

我不知道您打算做什么,但是您的GroupBy将您的ViewParceirosModels序列更改为“一组ViewParceirosModels”序列。一组中的每个ViewParceirosModel都有相同的ID,该ID的值在键中。

因此,如果在GroupBy之后有一组Key == 1的ViewParceirosModel,那么您知道该组中的每个ViewParceirosModel的Id都等于1。

同样,键为17的组中的所有ViewParceirosModel的Id都等于17。

我认为ID是您的主键,因此每个组中只有一个元素。组1将拥有唯一的Id == 1的ViewParceirosModel,组17将拥有唯一的Id == 17的ViewParceirosModel。

如果Id是唯一的,则GroupBy是无用的。

在GroupBy之后,您要按顺序递增NomeParceiro的ViewParceirosModels序列。

需求

我有一系列的Usarios。我只想让这些Usarios的Perfil值等于RoleType.Parceirdo。在其余的Usarios中,我想使用Id / Nome / Email属性的值制作ViewParceirosModels。ViewParceirosModels的其余序列应由NomeParceiro排序,并将结果放入列表中。

List<ViewParceirosModel> viewParceiroModels = Usarios
    .Where(usario => usario.Perfil == RoleType.Parceirdo)
    .Select(usario => new ViewParceirosModel
    {
        Id = x.id,
        NomeParceiro = x.nome,
        EmailAcesso = x.email,
    }
    .OrderBy(viewParceirosModel => viewParceirosModel.NomeParceiro)
    .ToList();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在同一查询中使用Join,Group By,Having和Where子句

来自分类Dev

mysql语法在同一查询上使用和启用

来自分类Dev

如何在同一查询中同时使用sp_msforeachtable和sp_msforeachdb?

来自分类Dev

如何在Elasticsearch的同一查询中使用`gt`和`fields`

来自分类Dev

sequelize如何在同一查询中使用AND和OR运算符?

来自分类Dev

包含在Rails中:如何在同一查询中混合使用OR和外部联接?

来自分类Dev

如何在 laravel 集合的同一查询中使用 laravel 命令“whereIn”和“WhereNotIn”

来自分类Dev

如何在同一查询中的同一表之间插入和删除?

来自分类Dev

不能在同一查询中使用group by和over(partition by)吗?

来自分类Dev

在同一查询中使用 OR 和 AND 的查询问题

来自分类Dev

Cypher:如何在同一查询中执行COUNT和MAX / MIN(相同的聚合)

来自分类Dev

MongoDB:如何在特定格式的同一查询中查找和计数?

来自分类Dev

在同一查询中使用SUM和DISTINCT

来自分类Dev

在同一查询中使用Max和Sum

来自分类Dev

“ AND”和“ OR”是否可以在同一查询中使用?

来自分类Dev

在同一SQL查询中使用WHERE,HAVING和GROUP BY

来自分类Dev

在同一查询中将MySQL SELECT查询的结果用作WHERE条件

来自分类Dev

如何使用 linq GROUP BY multiple 和 SELECT 查询

来自分类Dev

MongoDB查询在同一查询中使用distinct和limit

来自分类Dev

如何使用变量where和select进行LINQ查询?

来自分类Dev

在Linq查询中选择OrderBy,where,Select的顺序

来自分类Dev

如何在同一SQLPLUS INSERT INTO语句中同时使用SELECT查询和RETURNING

来自分类Dev

选择查询和具有结果的同一查询

来自分类Dev

使用DB :: raw和Eloquent使用同一查询的不同结果

来自分类Dev

在同一查询中将SELECT结果用作WHERE条件,以另一个SELECT可能吗?

来自分类Dev

Linq Orderby和与众不同

来自分类Dev

LINQ加入和orderby问题

来自分类Dev

Linq Orderby和与众不同

来自分类Dev

LINQ中的orderby()和distinct()

Related 相关文章

  1. 1

    在同一查询中使用Join,Group By,Having和Where子句

  2. 2

    mysql语法在同一查询上使用和启用

  3. 3

    如何在同一查询中同时使用sp_msforeachtable和sp_msforeachdb?

  4. 4

    如何在Elasticsearch的同一查询中使用`gt`和`fields`

  5. 5

    sequelize如何在同一查询中使用AND和OR运算符?

  6. 6

    包含在Rails中:如何在同一查询中混合使用OR和外部联接?

  7. 7

    如何在 laravel 集合的同一查询中使用 laravel 命令“whereIn”和“WhereNotIn”

  8. 8

    如何在同一查询中的同一表之间插入和删除?

  9. 9

    不能在同一查询中使用group by和over(partition by)吗?

  10. 10

    在同一查询中使用 OR 和 AND 的查询问题

  11. 11

    Cypher:如何在同一查询中执行COUNT和MAX / MIN(相同的聚合)

  12. 12

    MongoDB:如何在特定格式的同一查询中查找和计数?

  13. 13

    在同一查询中使用SUM和DISTINCT

  14. 14

    在同一查询中使用Max和Sum

  15. 15

    “ AND”和“ OR”是否可以在同一查询中使用?

  16. 16

    在同一SQL查询中使用WHERE,HAVING和GROUP BY

  17. 17

    在同一查询中将MySQL SELECT查询的结果用作WHERE条件

  18. 18

    如何使用 linq GROUP BY multiple 和 SELECT 查询

  19. 19

    MongoDB查询在同一查询中使用distinct和limit

  20. 20

    如何使用变量where和select进行LINQ查询?

  21. 21

    在Linq查询中选择OrderBy,where,Select的顺序

  22. 22

    如何在同一SQLPLUS INSERT INTO语句中同时使用SELECT查询和RETURNING

  23. 23

    选择查询和具有结果的同一查询

  24. 24

    使用DB :: raw和Eloquent使用同一查询的不同结果

  25. 25

    在同一查询中将SELECT结果用作WHERE条件,以另一个SELECT可能吗?

  26. 26

    Linq Orderby和与众不同

  27. 27

    LINQ加入和orderby问题

  28. 28

    Linq Orderby和与众不同

  29. 29

    LINQ中的orderby()和distinct()

热门标签

归档