如何在Linq中表示SQL查询
本文关键字:表示 SQL 查询 Linq | 更新日期: 2023-09-27 17:59:39
我在SQL中有一个简单的查询,但在linq中发现转换困难。我是林克的新手。
我的SQL select语句如下
select CM.CategoryName
from dbo.utblCategoryMaster as CM
where CM.ParentCategoryID in
(select CategoryID from dbo.utblCategoryMaster where CategoryName='Events')
我知道这很简单。我试过这个
var result = from objutblCategoryMaster in db.utblCategoryMasters
select new
{
CategoryID = objutblCategoryMaster.CategoryID,
CategoryName = db.utblCategoryMasters.Where(x => x.ParentCategoryID == objutblCategoryMaster.CategoryID && x.CategoryName=="Events")
};
return result.CopyToDataTableExt();
您可以通过联接获得结果。
var result = db.utblCategoryMasters
.Join(db.utblCategoryMasters.Where(c => c.CategoryName=="Events"),
cm => cm.ParentCategoryId,
c => c.CategoryId,
(cm, c) => new { cm.CategoryId, cm.CategoryName });
如果您使用的是实体框架,并且导航属性设置正确,您可以将其简化为以下内容。。。
var result = db.utblCategoryMasters
.Where(cm => cm.ParentCategory.CategoryName == "Events")
.Select(cm => new { cm.CategoryId, cm.CategoryName });