【问题标题】:mvc c# select from multiple table in lambdamvc c#从lambda中的多个表中选择
【发布时间】:2017-05-25 07:41:05
【问题描述】:

我是 lambda 和 mvc c# 的新手。我正在使用 c# 进行简单查询。现在遇到这种类型的查询,不知道怎么实现这个lambda。多个表没有join

select distinct sub.SubModuleName --[SMSSysmanager].
from    
        [dbo].tbl_Securable sec,
        [dbo].aspnet_UsersInRoles usr,
        [dbo].aspnet_Roles rol,
        [dbo].tbl_SubModule sub,
        [dbo].tbl_Module mod

where 
    usr.UserId=@userid and
    usr.roleID=sec.roleID and 
    rol.roleId=sec.roleID and
    rol.LoweredRoleName = LOWER(@RoleName) and
    sec.HasAccess=1 and 
    sec.ModuleId=sub.SubModuleId

【问题讨论】:

  • 看看这个问题:9273369
  • 我认为 lambda 很难实现。您可以通过一些查询将它们分开。
  • 其实usr inner join sec, sec inner join rol, sec inner join sub,我觉得应该有一个缺失的线索就是sec inner join mod

标签: c# asp.net-mvc lambda


【解决方案1】:
var distinctItems = (from sec in context.tbl_Securable
                 from usr in context.aspnet_UsersInRoles
                 from rol in context.aspnet_Roles
                 from sub in context.tbl_SubModule
                 from mod in context.tbl_Module
                 where
                     usr.UserId == userid &&
                     usr.roleID == sec.roleID &&
                     rol.roleId == sec.roleID &&
                     rol.LoweredRoleName == roleName.ToLower() &&
                     sec.HasAccess &&
                     sec.ModuleId == sub.SubModuleId
                 select
                     sub.SubModuleName).Distinct();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多