当前位置:编程学习 > C#/ASP.NET >>

关于Nhibernate建立领域模型,生成对应数据库表问题。

当构建完权限模型,通过NHibernate.Tool建立表结构后,发现生成的表与自己所想的表结构不一样,求教啊.
/// <summary>
    /// 角色 , 标识为可序列号
    /// </summary>
    [Serializable]
    public class Role
    {
        /// <summary>
        /// 主键,自增
        /// </summary>
        public virtual int Id { get; set; }
        /// <summary>
        /// 名称
        /// </summary>
        public virtual string Name { get; set; }
        /// <summary>
        /// 详细说明
        /// </summary>
        public virtual string Description { get; set; }
        /// <summary>
        /// 所拥有的菜单
        /// </summary>
        public virtual IList<Menu> Menus { get; set; }
    }


生成的表为
CREATE TABLE [dbo].[T_ROLE](
[R_ID] [int] IDENTITY(1,1) NOT NULL,
[R_NAME] [nvarchar](30) NULL,
[R_DESCRIPTION] [nvarchar](500) NULL,
[U_ID] [int] NULL   -- 此处是对应的User表中得IList<Role>属性
)

纳闷,怎么没有一个Role对应的Menu中间表出来呢? 如果要维护Role,或者Menu怎么办呢? --------------------编程问答-------------------- 没人指教? 自己先强势顶一下. --------------------编程问答-------------------- 在你的架构里rOLE->Menus关联role是1,menus是多,此时的menu表中有role的外键,就像role表中有U_ID那样,所以你要找ID,得到Menus表里找。 --------------------编程问答-------------------- 如果新添加了用户,每个用户都有自己的角色,那意味着Role表中,得插入很多数据,原本我只想Role就是定义的一些角色,而角色所拥有的菜单,是通过中间表来实现,在Nhibernate框架生成出来的表,让我很难理解,如果要维护角色的时候,它是如何做的呢?   --------------------编程问答--------------------
引用 3 楼 youqiwu123 的回复:
如果新添加了用户,每个用户都有自己的角色,那意味着Role表中,得插入很多数据,原本我只想Role就是定义的一些角色,而角色所拥有的菜单,是通过中间表来实现,在Nhibernate框架生成出来的表,让我很难理解,如果要维护角色的时候,它是如何做的呢?

貌似你现在的思维有些混乱,建议先静下心来,吸口气,闭眼5分钟后再思考,
....

举个例子
1) 张三有3个角色(A,B,C),李四有2个角色(A,B),那角色表里应该有3个呢,还是5个?
2)角色A可以访问菜单(P1,P2),角色B可以访问菜单(P1,P3,Q1),角色C可以访问菜单(P2,Q2)那么张三可以访问的菜单有哪些? --------------------编程问答-------------------- 你说得对,是比较混乱了!
角色应该是3个吧,但是一个用户对应多个角色它是如何关系起来的呢?很郁闷. 如果让我自己手动创建表结构,这个问题不难,但是,Nhibernate框架创建出来的表,很不理解.都不知道他是如何来存储一对多关系的数据.小弟,学艺未精,望求指教啊?
这位仁兄,可否给个联系方式? --------------------编程问答-------------------- 又没人指教? 自己再强势顶一下.
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,