c# - LINQ to Entities in linq join with tuples 中仅支持无参数构造函数和初始值设定项
问题描述
我正在尝试加入两个表并创建一个元组列表,但由于“LINQ to Entities 仅支持无参数构造函数和初始化程序”而出现错误
var list = (
from a in db.CategoryRatings
join c in db.OverallPerformanceByCategories
on a.CategoryRatingId equals c.CategoryRatingId
where c.ReviewId == review.ReviewId
select(new Tuple<string, double, double>(a.CategoryRatingName, a.CategoryWeight, c.Score))
).ToList();
ViewData["ListOverallRating"] = list;
我不想创建匿名类型列表来使用元组,也可以建议其他方式。
解决方案
使用匿名类型从数据库中获取并转换为内存中的元组。
var list = (
from a in db.CategoryRatings
join c in db.OverallPerformanceByCategories
on a.CategoryRatingId equals c.CategoryRatingId
where c.ReviewId == review.ReviewId
select(new {a.CategoryRatingName, a.CategoryWeight, c.Score})
)
.AsEnumerable()
.Select(t =>
new Tuple<string, double, double>(t.CategoryRatingName, t.CategoryWeight, t.Score))
.ToList();
ViewData["ListOverallRating"] = list;
希望这有帮助!
推荐阅读
- python - Python SocketIO-client 不接收来自 nodeJS 服务器的发射
- javascript - @keydown 和 @input 一起触发
- swift - 如何使用 swift combine 异步处理一系列任务
- android - Android 自定义视图上的双向数据绑定。找不到吸气剂
- javascript - JavaScript 中的函数表达式调用
- java - 如何摆脱 Intellij 中的编译消息?
- kubernetes - 为什么路径没有安装?
- python - python脚本mkdir加上用户名
- vb.net - 如何使用 Visual Basic 创建一个矩形
- javascript - 在 Node.JS 中从 AWS Secrets manager 设置 Secret