有人能帮我把这个MySQL语句转换成LinqLambda吗
本文关键字:语句 MySQL 转换 LinqLambda | 更新日期: 2023-09-27 18:13:16
我需要帮助将此查询转换为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);