Sql以LINQ查询LINQ查询转换

时间:2016-08-27 07:04:33

标签: entity-framework

我想用 LINQ

写一个 SQL 查询

这是我的查询

SELECT DISTINCT * 
FROM [IHQDB].[dbo].[Table1] as t1 
inner join Table2 as t2 on t2.Table2 =t1.ChangedItemID 
inner join Table3 as t3 on t3.Table3 = t1.FromUserID 
where (t1.FromUserID=1 And t2.ContentItemID= t1.ChangedItemID) 
OR (t2.LastModifiedBy=1 or t2.CreatedBy=1 )

嗨,现在它的工作正常,但我的查询在1的地方有点不同我需要用户ID 基于其来自 M_User 表的名字和姓氏。 如何在名字+姓氏的基础上获得 UserId

这是我的 LINQ CODE 用于检索用户名

linq4 = from q in context.T_ContentItems
join p in context.M_Users on q.CreatedBy equals p.UserID 
where (advanceKeyword.Contains(p.EmployeeFirstName + " " + p.EmployeeLastName)) select q; 
advancechk12 = linq4.ToList();

=============================================== =========================

我需要的是,只要我写了值“1”(例如t2.CreatedBy=1),我就需要找到 UserID 。为简单起见,我可以在 advancechk12 中获取所有已过滤用户的名称。如何检索 advancechk12

中返回的用户名列表的 UserID

1 个答案:

答案 0 :(得分:1)

您必须使用您的模型名称替换下面提到的Linq查询。我只使用了与T-Sql相同的名称。

 var t1List =   (from t1 in db.Table1
    join t2 in db.Table2 on t1.ChangedItemID equals t2.Id
    join t3 in db.Table3 on t3.Id equals t1.FromUserID
    where ((t1.FromUserID=1 && t2.ContentItemID= t1.ChangedItemID) || (t2.LastModifiedBy=1 or t2.CreatedBy=1))
    select t1).Distinct().ToList();