我有这个原始SQL需要在LINQ中重写:

SELECT
    luProfiles.luProfileID,
    luProfiles.ProfileName,
    NoOfRights = (SELECT Count(pkProfileRightsID) FROM tblProfileRights WHERE fkProfileID = luProfileID)
FROM  luProfiles
WHERE luProfiles.ProfileName LIKE ...


我已经在LINQ中完成了大部分操作,但是我不确定如何将NoOfRights部分添加到LINQ中。到目前为止,这是我所做的:

return from p in _database.LuProfiles
       where p.ProfileName.ToLower().StartsWith(strProfile.ToLower())
       select p;


有人可以告诉我在我的LINQ中包含NoOfRights部分的正确语法吗?

最佳答案

from p in _database.LuProfiles
let NoOfRights = (from r in database.tblProfileRights
                  where r.fkProfileID == p.luProfileID
                  select r).Count()
where p.ProfileName.ToLower().StartsWith(strProfile.ToLower())
select new
{
    p.luProfileID,
    p.ProfileName,
    NoOfRights
};

关于c# - LINQ语法问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5743679/

10-10 03:22