如何从Entity Framework/LINQ中的特定表中提取元组列表?

Ale*_*lex 10 .net c# linq entity-framework list

我需要从带有Entity Framework的C#.NET中的大表中提取一对'ID'/'Name'的列表.

我试试这个请求:

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

但不幸的是我有这个错误:

LINQ to Entities中仅支持无参数构造函数和初始值设定项.

我不知道如何用这个框架提取这个元组列表,我觉得这个错误有点丢失.你能帮我理解和解决我的问题吗?

最好的祝福,

亚历克斯

Pat*_*iek 15

您可以通过选择匿名类型来执行中间步骤:

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

在Linq To Entities中创建元组不是受支持的操作,因此您必须选择一个匿名类型,它类似于:

SELECT [Resource].[Resource_ID], [Resource].[Name]
Run Code Online (Sandbox Code Playgroud)

然后转到LINQ to Objects by AsEnumerable并获取你的元组.