zoukankan      html  css  js  c++  java
  • Ado.net Entity Framework 中的多对多查询

    这个弄了好久。。。倒头来发现自己钻牛角尖了,把方法记了下:

    这是一个权限管理例子,有用户表,权限表,角色表 ,由于是多对多关系,它们都有个中间表

    用户和角色的关系是:N:N

    角色和权限的关系是:N:N 

     Linq To Entities中,当我要查询出“指定的用户是否拥有某个权限”时:

     代码:

    //初始化
    var marine_user = this.Database.GetQueryable<marine_User>();
    var marine_role 
    = this.Database.GetQueryable<marine_Role>();
    var marine_permission 
    = this.Database.GetQueryable<marine_Permission>();

    //查询出拥有指定权限的角色列表
    var queryRole = from p in marine_permission
                    from r 
    in marine_role
                    from rp 
    in r.marine_Permission
                    
    where rp.PermissionID == p.PermissionID && p.Namepace + "." + p.Controller + "." + p.Action + "," + p.Assembly == actionName
                    select r;


    //查询出拥有 queryRole 角色的用户列表
    var queryUser = from u in marine_user
                    from r 
    in queryRole
                    from ur 
    in u.marine_Role
                    
    where ur.RoleID == r.RoleID
                    select u;
  • 相关阅读:
    一道编程面试题
    AtCoder Grand Contest 016 B
    AtCoder Regular Contest 076 D
    Codeforces Round #419 (Div. 2) B. Karen and Coffee
    2017 计蒜之道 复赛 Windows画图+百度地图导航
    Codeforces Round #418 (Div. 2) B. An express train to reveries
    棠梨煎雪
    Bits And Pieces
    Let Them Slide
    TeaTree
  • 原文地址:https://www.cnblogs.com/cjnmy36723/p/2117089.html
Copyright © 2011-2022 走看看