参见英文答案 > How can I extract a list of Tuple from a specific table with Entity Framework / LINQ? 2个
我想从数据库加载元组列表.但是,当尝试如下.我收到一个错误“在LINQ to Entities中只支持无参数构造函数和初始值设定项”.
List<Tuple<string, DateTime?>> schdule = new List<Tuple<string, DateTime?>>();
schdule = Entities.ScheduleDates.Where(x => x.Code == cCode).Select(x => new Tuple<string, DateTime?>(x.Key, x.Time)).ToList<Tuple<string, DateTime?>>();
但是,通过使用匿名类型,我不会收到任何错误.
var tempSchedule = Entities.ScheduleDates.Where(x => x.Code == cCode).Select(x => new { x.Key, x.Time }).ToList();
为什么我面临上述错误.
解决方法:
由于LINQ to Entities查询被转换为SQL查询,因此您执行的每个操作都必须具有SQL中的等效项.
只是方法的构造函数无法翻译.
但实例化一个匿名类型可以,它将简单地翻译为:
SELECT someAlias.Key, someAlias.Time ...