SSH.net之model层

新建一个项目,第一个net版本的ssh项目,命名为:Nssh.project:

新建类库,作为项目model层

然后,开始编写代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model
{
    public class Users
    {
        public virtual int userID { get; set; }
        public virtual string uname { get; set; }
        public virtual Roles roles { get; set; }//一个用户有一个角色,一个角色可以有多个用户
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model
{
    public class Roles
    {
        public virtual int rolesID { get; set; }
        public virtual string RolesName { get; set; }

        public virtual IList<Users> UserList { get; set; }//一个用户有一个角色,一个角色可以有多个用户
        public virtual IList<Permission> permissionList { get; set; }//用户角色与权限是多对多关系
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Model
{
    public class Permission
    {
        public virtual int permissionID { get; set; }
        public virtual string PermissionName { get; set; }

        public virtual IList<Roles> rolesList { get; set; }//用户角色与权限是多对多关系
    }
}

hbm.xml文件

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Model" namespace="Model">
    <class name="Model.Users, Model" table="P_Users">

        <id name="userID" column="userID" type="int" >
            <generator class="native" />
        </id>

        <property name="uname" column="uname" type="string" length="50" not-null="true"/>

        <many-to-one name="roles" column="RoleID" />

    </class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Model" namespace="Model">
    <class name="Model.Roles, Model" table="P_Roles">

        <id name="rolesID" column="rolesID" type="int" >
            <generator class="native" />
        </id>

        <property name="RolesName" column="RolesName" type="string" length="50" not-null="true"/>

        <!--Bag:对象集合,每个元素可以重复。例如{1,2,2,6,0,0},在.Net中相当于IList或者IList<T>
            实现。
            Set:对象集合,每个元素必须唯一。例如{1,2,5,6},在.Net中相当于ISet或者ISet<T>
                实现,Iesi.Collections.dll程序集提供ISet集合。
            List:整数索引对象集合,每个元素可以重复。例如{{1,"YJingLee"},{2,"CnBlogs"},{3,"LiYongJing"}},在.Net中相当于ArraryList或者List<T>
                实现。
            Map:键值对集合。例如{{"YJingLee",5},{"CnBlogs",7},{"LiYongJing",6}},在.Net中相当于HashTable或者IDictionary<Tkey,TValue>
                实现。
        -->
        <bag name="UserList" inverse="true" cascade="all-delete-orphan" table="P_Users">
            <key column="rolesID" foreign-key="FK_user_role"/>
            <one-to-many class="Model.Users, Model" />
        </bag>

        <bag name="permissionList" table="P_Role_Permission">
            <key column="rolesID" foreign-key="FK_role_permission"/>
            <many-to-many class="Permission" column="permissionID"/>
        </bag>

    </class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Model" namespace="Model">
    <class name="Model.Permission, Model" table="P_Permission">

        <id name="permissionID" column="permissionID" type="int" >
            <generator class="native" />
        </id>

        <property name="RolesName" column="RolesName" type="string" length="50" not-null="true"/>

        <bag name="rolesList" table="P_Role_Permission">
            <key column="permissionID" foreign-key="FK_role_permission"/>
            <many-to-many class="Roles" column="rolesID"/>
        </bag>

    </class>
</hibernate-mapping>

最后记得设置hbm.xml文件属性:

时间: 2024-10-23 20:01:19

SSH.net之model层的相关文章

EntityFramework5.0 在三层架构中的使用,分离实体类到Model层。

EntityFramework默认是把数据访问和实体耦合在一起,显然这样不符合分层的要求和思想.我的方法是强制分离实体类到Model层,过程如下图所示. 演示程序下载 1. 2. 3. 4. 5. 6. 7. 8. 9.

简易留言薄系统-ASP.NET MVC(Model层)

我的开发顺序是从Model层开始.在Model层目前一共有4个类.Model层除MvcBbsContext引用了System.componentModel 与 System.ComponentModel.DataAnnotations,在MvcBbsContext类中引用了System.Data.Entity 1.User 代码: using System;using System.Collections.Generic;using System.Linq;using System.Web;us

CI的model层的操作

1.需求 整理ci框架下model层的相关操作 2.代码 model的代码,放在application/model目录下,文件名为Coupon.php <?php class Coupon extends CI_Model { function __construct() { parent::__construct(); $this->load->database(); } /* * @param array 一条记录数组 * @return bool 成功返回true * */ pub

struts2怎么把form请求过来的参数赋给model层

struts2提交的信息,将值赋给model层,这个在struts2里面有个接口,需要实现一下,实现后就可以就参数直接赋给model实体. 这个接口式ModelDriven. 以下是示例 public class DemoAction extends ActionSupport implements ModelDriven<Demo>{     @Override public Demo getModel() { return d; } } 这里面有个泛型,就是对应的实体.

yii model层操作总结

yii model层操作属性和方法总结. tableName – 设置Model所对应的表名,例如: public function tableName(){return 'gshop_order_ext';} rules – 设置Model里各字段的验证规则 relations – 设置关联规则 attributeLabels – 设置各字段的别名 safeAttributes – 设置可以修改属性的字段 beforeValidate和afterValidate – 字段验证前和验证后执行的函

MVC5中Model层开发数据注解

ASP.NET MVC5中Model层开发,使用的数据注解有三个作用: 数据映射(把Model层的类用EntityFramework映射成对应的表) 数据验证(在服务器端和客户端验证数据的有效性) 数据显示(在View层显示相应的数据) 数据注解相关的命名空间如下: System.ComponentModel.DataAnnotations System.ComponentModel.DataAnnotations.Schema System.Web.Mvc System.Web.Securit

SSH.net之Service层

一.新建一个项目,命名为:Service 二.添加接口及其实现 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Model; namespace Service { public interface IUserService { object Save(Users entity); } } using System; using System.Collectio

PHP MVC 中的MODEL层

Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封 三.实现你的Mode层 Model层,就是MVC模式中的数据处理层,用来进行数据和商业逻辑的装封,进行他的设计的时候设计到三个个概念:------Model类.是实体类.用来保存数据库表格的中一条记录的所有字段的数据.并且可以验证这条记录数据的完整性.------ModelManager类. 是实体类的管理类.通常每一个实体类(Model)都要有一个对应的管理类(ModelManager).管理类可以用来管理实体类里面的数

对于社保截止日接口的学习记录---在yii1.1中公共service层对model层的调用

需要明确的一点,sql语句或者yii自带的find和findall方法这些操作,都需要放在model层,在对应的model里面创建一个方法.写上这些sql语句,有三个例子: 1.这个方法是通过截止日期来获取城市的信息. /** *根据截止日期来获取城市信息 *@paramarray$deadline_day社保截止日期 *@returnarray *@authorxcz */ publicfunctiongetCityDataByDeadline($deadline_day){ $sql="SE