繁体   English   中英

System.NotSupportedException:当我运行此 Linq 查询时

[英]System.NotSupportedException : When I run this Linq query

无法在 LINQ 到实体查询中构造实体或复杂类型“CategoryModel.ItemModel”。

var query1 = (from a in db.ItemModels
                              select new ItemModel
                              {
                                  Id = a.Id,
                                  Name = a.Name,
                                  Path = a.Path
                              }).ToList();

如何用另一种形式写这个?

LINQ 提供者将不知道 MovieSummary 构造函数中的代码是什么,因为构造函数代码未在查询生成的表达式树中捕获。 实体框架尝试将 LINQ 查询中的所有内容转换为 T-SQL,但由于它无法准确说明构造函数调用内部发生的情况,因此它必须停止并抛出异常。

一种解决方案是通过从 IQueryable 切换到 IEnumerable(使用 AsEnumerable LINQ 运算符)将整个投影移出表达式树。

var summaries = db.Movies.AsEnumerable()
                  .Select(m => new MovieSummary(m));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM