8,497
社区成员
发帖
与我相关
我的任务
分享
public partial class User
{
public Int64 Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public virtual IList<Role> Roles { get; set; }
}
public partial class Role
{
public Int64 Id { get; set; }
public string RoleName { get; set; }
public string Description { get; set; }
public virtual IList<User> Users { get; set; }
}
public class RuntimeDBContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
//public DbSet<UsersInRole> UsersInRoles { get; set; }
public RuntimeDBContext (string nameOrConnectionString)
: base(nameOrConnectionString)
{
}
protected override void OnModelCreating (DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasMany(b => b.Roles)
.WithMany(c => c.Users)
.Map
(
m =>
{
m.MapLeftKey("UserId");
m.MapRightKey("RoleId");
m.ToTable("UsersInRoles");
}
);
base.OnModelCreating(modelBuilder);
}
}
var result=from c in entity.User
from r in c.Roles
where 你的条件
//初始化
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;