现有查询中使用select语句
问题描述:
我正在使用的应用程序,我不得不使用select statement
的SQL query
内LINQ
现有查询中使用select语句
我有以下SQL查询必须被转换为LINQ在我的控制器中使用我的ASP.Net MVC应用程序
SQL查询
Select *
From CCUserDataList
Where CCId IN (
Select CompanyId
From Users
Where UserName="test")
Order by ProductOrder, GradeOrder,TermOrder
上述查询给我我需要的结果,但我使用它有问题在我的应用程序在那里我使用LINQ
如下
public override IQueryable<CCUserData> Get()
{
return db.CCUserDataList
.OrderBy(c => c.ProductOrder)
.ThenBy(c => c.GradeOrder)
.ThenBy(c => c.TermOrder);
}
和上面LINQ
当然是不完整的,如果它应该返回相同的结果。我的SQL查询。
我可以知道完整的LINQ吗?
答
不知道你的类/数据库结构,我会说你可以这样做:
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));
你意思是'var companyIds = db.Users.Where(u => u.UserName ==“test”)。Select(u => u.CompanyId).ToList();'? – 2014-10-30 16:40:34
@asdf_enel_hak no。我尽量留在IQueryable世界。 – 2014-10-30 16:40:54
这就是我也会这么做的。我希望有更好的方法,但如果有的话,我还没有找到它。 – 2014-10-30 16:48:22