linq - Linq 多个连接到 SelectList
问题描述
下面的 Linq 查询从 S 返回我的值。
List<SelectListItem> sNos = _ctx.S.AsNoTracking()
.Select(n =>
new SelectListItem
{
Value = n.SID.ToString(),
Text = n.SNO
}).ToList();
return new SelectList(sNos, "Value", "Text");
我现在需要通过应用连接来进一步完善我的 linq 查询,例如我的实体“b”有一个要加入的 id,所以我尝试过类似的方法,但现在运气不错。有人可以从语法上向我展示如何在 linq 中正确应用连接吗?
List<SelectListItem> sNos = _ctx.S.AsNoTracking()
join b in _ctx.B
on b.BID = s.SID
.Select(n =>
new SelectListItem
{
Value = n.SID.ToString(),
Text = n.SNO
}).ToList();
return new SelectList(sNos, "Value", "Text");
这两个实体都已映射到我的 DBContext 页面中。
解决方案
If you have a lot of joins, I prefer Query Syntax:
var query =
from s in _ctx.S
join b in _ctx.B on b.BID equals s.SID
select new SelectListItem
{
Value = s.SID.ToString(),
Text = s.SNO,
BValue = b.SomeField
};
var result = query.ToList();
Details on join clauses can be found here.
推荐阅读
- python - 'max_pooling2d_8/MaxPool' 从 1 中减去 3 导致的负维度大小
- java - 安装 AspectJ Eclipse
- go - 如何在struct中正确构造struct
- javascript - 内置函数中尾调用的优化
- sql - 以 DRY 方式将两个或多个列更新为相同的值 SQL
- c++ - 如何让 RecursiveASTVisitor 中止当前子树
- jestjs - 测试返回一个对象的函数,该对象返回一个返回布尔值的函数
- vb.net - 如何设置“ImageLocation”
- javascript - 不确定为什么表单没有加载到加载的 html 标记上?
- javascript - 如何在 dropzonejs 中获取服务器响应