c# - 如何使用 Entity Framework/LINQ 从特定表中提取元组列表?

标签 c# .net linq entity-framework list

我需要使用 Entity Framework 从 C# .NET 中的一个大表中提取一对“ID”/“名称”的列表。

我试试这个请求:

List<Tuple<int, string>> list = (from res in db.Resource 
                                 select new Tuple<int, string>(res.Resource_ID, res.Name)).ToList();

但不幸的是我遇到了这个错误:

Only parameterless constructors and initializers are supported in LINQ to Entities.

我不明白如何使用这个框架提取这个元组列表,我对这个错误感到有点迷茫。 你能帮助我理解和解决我的问题吗?

最好的问候,

亚历克斯

最佳答案

您可以通过选择匿名类型通过中间步骤完成此操作:

db.Resource.Select(x => new { x.Resource_ID, x.Name }).AsEnumerable().Select(x => Tuple.Create(x.Resource_ID, x.Name)).ToList();

在 Linq To Entities 中不支持创建元组操作,因此您必须选择匿名类型,这等同于:

SELECT [Resource].[Resource_ID], [Resource].[Name]

然后通过 AsEnumerable 移动到 LINQ to Objects 并获取您的元组。

关于c# - 如何使用 Entity Framework/LINQ 从特定表中提取元组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16542761/

相关文章:

c# - 在运行时确定 .NET Standard DLL 中的框架

c# - 实例化扩展方法? C#

c# - 为什么在接口(interface)上定义的 C# 4 可选参数没有在实现类上强制执行?

c# - 应用程序层的处理程序是否应返回 DTO 或域对象

c# - LINQ 根据另一个列表之间的值过滤结果

c# - 笔记本电脑上的Windows 10访问键盘灯

c# - 静态 Object.Equals 方法,GetHashCode 和 Dictionary 类的默认实现

c# - 在 NULL 的 LINQ 查询中将字符串设置为 ""

c# - LINQ Expression API 不提供创建变量的方法吗?

c# - 与时间无关的日期列表