LINQ语法问题
我有这个原始 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 部分的正确语法吗?
I have this original SQL that I need to rewrite in LINQ :
SELECT
luProfiles.luProfileID,
luProfiles.ProfileName,
NoOfRights = (SELECT Count(pkProfileRightsID) FROM tblProfileRights WHERE fkProfileID = luProfileID)
FROM luProfiles
WHERE luProfiles.ProfileName LIKE ...
I have done most of it in LINQ, but I am not sure how to add the NoOfRights part to my LINQ. This is what I have done so far :
return from p in _database.LuProfiles
where p.ProfileName.ToLower().StartsWith(strProfile.ToLower())
select p;
Can anybody tell me the right syntax to include the NoOfRights part in my LINQ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您使用 LINQ-to-SQL 或 EF,并且设置了 FK,则应该有一个导航属性
ProfileRights
。这种情况,可以这样查询:If you are using LINQ-to-SQL or EF, and you have an FK set up, you should have a navigational property
ProfileRights
. Tn that case, you can query this way:我认为这会对你有所帮助:
I think this would help you out:
我建议你首先将 SQL 更改为如下所示:
这样就可以轻松地将其转换为 LINQ:(
未测试,所以自己动手)
I would recommend you to change SQL first to something like this:
So this can easily be transformed to LINQ:
(not tested, so do it yourself)