显示long的linq查询在将sql查询转换为linq时不包含Contains的定义

时间:2018-05-29 07:54:05

标签: c# sql-server linq sql-to-linq-conversion

朋友们我们正在将sql查询转换为linq查询,这种转换涉及两个表如下

select * from Tbl_Vulpith_Registration where Profile_Pic is not null and MemId IN(select MemId from Tbl_List_Services)

这里Tbl_Vulpith_Registration和Tbl_List_Services都是表格

memId是两个表中的公共列。

按照我们尝试将上述sql查询转换为linq

的内容
var reglist=  objentity.Tbl_Vulpith_Registration.Select(a => a).Where(a => a.Profile_Pic != null);
// var res= reglist.Where(a=>a.Tbl_List_Services)

var listmemsmemIds = objentity.Tbl_List_Services.Select(b => b.MemId).ToList();

var finalist = reglist.Select(b => b).Where(c => c.MemId.Contains(listmemsmemIds));

我们尝试了多种转换方式,但没有运气。

2 个答案:

答案 0 :(得分:1)

你需要做的恰恰相反:

.Where(c => listmemsmemIds.Contains(c.MemId))

答案 1 :(得分:0)

使用以下代码连接两个表并获取输出(在内部,它只会创建一个查询)

var reglist = objentity.Tbl_Vulpith_Registration.Join(objentity.Tbl_List_Services, 
     o => o.MemId, i => i.MemId, (o, i) => o).Where(o => o.Profile_Pic  != null).ToList()

上述代码根据匹配MemId关联表格,并返回实体类型Tbl_Vulpith_Registration的对象。

如果您想了解加入方法,请查看this链接。