你的位置:首页 > 软件开发 > ASP.net > ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)

ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)

发布时间:2015-06-27 12:01:59
最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助。  上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用EntityFramework已经有段时间了,基于ABP这样的设计还是第一次看 ...

ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)

      最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助。

  上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用EntityFramework已经有段时间了,基于ABP这样的设计还是第一次看到,具体应用场景1:N,ABP权限设计,菜单的权限可以分配置给角色,也可以直接分配给用户。

  另一个应用场景也可以是订单系统:客户可以通过订单查询到客户的所有订单明细,订单明细与客户没有关系,如果想直接查看客户的订单明细,也可以通过这种方式进行设计,具体设计方法如下

  DbContext 设计类(分离出来的Demo)

  

public class Test : DbContext  {    //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)    //使用“Test”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的    //“Study.EF.Test”数据库。    //     //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“Test”    //连接字符串。    public Test()      : base("name=Test")    {    }    //为您要在模型中包含的每种实体类型都添加 DbSet。有关配置和使用 Code First 模型    //的详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=390109。    public virtual DbSet<Permission> Permission { get; set; }    public virtual DbSet<UserPermission> UserPermission { get; set; }    public virtual DbSet<RolePermission> RolePermission { get; set; }    public virtual DbSet<User> User { get; set; }    public virtual DbSet<Role> Role { get; set; }  }  public class Permission  {    public int Id { get; set; }    public string Name { get; set; }  }  public class UserPermission : Permission  {    public int UserId { get; set; } //基于用户的权限  }  public class RolePermission : Permission  {    public int RoleId { get; set; } //基于角色的权限  }  public class User  {

原标题:ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)

关键词:数据库

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。