VSCode 中的 C# Lambda 语法 ToListAsync

C# Lambda syntax ToListAsync in VSCode

angular 11 - 我总是提到 VSCode 因为它有很多错误。 然而:

var roles = await _context.Roles.ToListAsync<AppRole>(x => { x.Id == Id } );

得到一个

"; expected csharp(CS1002)" and the column and squiggle point to the right } after Id.

我尝试了各种更改,但看不出有什么问题。它应该从具有所需“Id”的角色 Table 中选择所有 AppRole 记录。

有什么想法吗?或者我只是在漫长的一周后感到疲倦。 谢谢, 瑜珈

试试这个:

var roles = await _context.Roles.Where(x =>  x.Id == Id ).ToListAsync();

ToListAsync 没有谓词作为参数https://docs.microsoft.com/en-us/dotnet/api/system.data.entity.queryableextensions.tolistasync?view=entity-framework-6.2.0。要过滤数据库集,您需要使用 where 进行查询,然后转换为 toList

在将可查询对象转换为列表之前,没有执行任何查询。

您可以在 to list 语句之后链接 where 函数,但这会将所有内容带入内存并过滤列表本身,因此不推荐这样做。