我有两个列表 T 对象。一个是可用论坛的列表,另一个是用户选择的论坛。这是在jquery ajax调用期间执行的,并将填充一个列表框。
目的是我想用"选定"标记用户订阅的论坛,这当然会在 html 列表框中呈现为突出显示的行。
我开始写这个查询并停止了很短的时间。
var result = (from exf in ExtForum
join custfrm in customer.ExternalForums on
exf.Id equals custfrm.Id
select new { id=exf.Id, name=exf.ForumName, isSelected=(true ? "selected" : "") })
.ToList();
这将仅返回匹配的论坛。我需要的是一个左外部查询,但在考虑这一点时,我认为这也是不正确的。嗯,这是正确的,因为它会返回所有可用的论坛,但现在我又回到了弄清楚如何标记我的比赛的原点。
我的改进方法是基本上将一个字符串对象返回给jquery,然后更新html控件。
ddlExtBoards.append($('<option></option>').val(option.id).html(option.name + " " + option.isSelected));
因此,关于完成此"匹配"的方法的建议/方向将不胜感激。
目的是我想用"选定"标记用户订阅的论坛
左联接是您想要的,这意味着ExtForum
中的所有记录至少包含一次,以及任何其他与联接匹配的记录
var results = (from exf in ExtForum
join custfrm in customer.ExternalForums on
exf.Id equals custfrm.Id into customerForums
from custForum in customerForums.DefaultIfEmpty()
select new
{
id = exf.Id,
name = exf.ForumName,
isSelected = custForum != null
}