[英]Can anyone help me convert this MySQL statement into Linq lambda?
我需要帮助将此查询转换为 linq。
select Title from titles
INNER JOIN UserTitles on UserTitles.TitleId = titles.TitleId
where UserTitles.UserId = currentUserId
这样我就可以循环用户标题:
例如:姓名、BS、BA、PHD
当我有这些表时:
用户:
+---------------+----------+
| currentUserId | UserName |
+---------------+----------+
| 1 | Dave |
+---------------+----------+
标题:
+---------+-------+
| TitleId | Title |
+---------+-------+
| 1 | BS |
| 2 | MD |
| 3 | PHD |
| 4 | BA |
+---------+-------+
用户名:
+--------+---------+
| UserId | TitleId |
+--------+---------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
+--------+---------+
编辑
在我的控制器中,我有这个:
IEnumerable<String> thisresult = _contentService.Titles
.Join(_contentService.UserTitles.Where(x => x.UserId == currentUserId),
t => t.Id,
ut => ut.TitleId,
(t, ut) => t.TitleString);
var model = new ManageUserViewModel()
{
Titlelist = thisresult
};
return View(model);
在我的 ViewModel 我有这个:
public IEnumerable<String> Titlelist { get; set; }
在我看来,我有这个:
@foreach (var title in Model.Titlelist)
{
@Html.Raw(title)
}
我明白了:
“/”应用程序中的服务器错误。 不支持指定的方法。
var result=db.titles
.Join(db.UserTitles.Where(x => x.UserId == currentUserId),
t=>t.TitleId,
ut=>ut.TitleId,
(t,ut)=>ut.Title);
如果使用实体框架,并正确设置用户和具有适当导航属性的标题表,它将是:
var result=db.Users
.Where(u=>u.UserId == currentUserId)
.Select(u=>u.Titles);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.