我需要使用 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/