在现有Query中使用select语句

时间:2014-10-30 16:27:55

标签: c# sql-server linq asp.net-mvc-4

我正在使用select statement使用SQL query

LINQ内使用Select * From CCUserDataList Where CCId IN ( Select CompanyId From Users Where UserName="test") Order by ProductOrder, GradeOrder,TermOrder 的应用程序

我有以下SQL查询,必须转换为LINQ才能在我的ASP.Net MVC应用程序的Controller中使用

SQL查询

LINQ

以上查询为我提供了我需要的结果,但我在我的应用程序中使用它时出现问题,我使用public override IQueryable<CCUserData> Get() { return db.CCUserDataList .OrderBy(c => c.ProductOrder) .ThenBy(c => c.GradeOrder) .ThenBy(c => c.TermOrder); } 如下

LINQ

当然,如果它应该返回与我的SQL查询相同的结果,则{{1}}以上是不完整的。

我可以知道完整的LINQ吗?

1 个答案:

答案 0 :(得分:2)

在不知道你的类/数据库结构的情况下,我会说你可以这样做:

var companyIds = db.Users.Where(u => u.UserName == "test").Select(u => u.CompanyId);
return db.CCUserDataList.Where(ccu => companyIds.Contains(ccu.CCId)).OrderBy....

连接查询可能也适用

return db.CCUserDataList
         .Where(ccu => db.Users
                         .Any(u => u.UserName == "test" && ccu.CCId == u.CompanyId));