在ASP.NET中使用NHibernate(第一季)


004.png (大小:1.9 K 下载次数:0)
最近比较闲,研究一下NHibernate.
我使用的是FluentNHibernate+NHibernate,这样不需要编写配置文件,上例子
数据库表结构和数据:

000.png (大小:9.8 K 下载次数:0)


创建工程,结构如下图:

001.png (大小:12.1 K 下载次数:0)

需要引入相关程序集,创建不同的目录

003.png (大小:4.1 K 下载次数:0)

Model 实体类文件夹
Mapping 映射类文件夹
DAL 数据访问层类文件夹
Common 通用类文件夹


002.png (大小:6.7 K 下载次数:0)

在Web.Config中配置连接字符串
代码说明:
实体类:UserRoles.cs
   public class UserRoles
   {
       //NHibernate 的实体类属性必须是virtual
       public virtual int Id { get; set; }
       public virtual string Name { get; set; }
   }
类名要和表名一致,也可不一致(在映射文件中可以声明)。
映射类:UserRoleMap.cs
public class UserRoleMap : ClassMap<UserRole>
{
       public UserRoleMap()
       {
           this.Table("UserRoles");//表名
           Id(u => u.Id);
           Map(u => u.Name).Column("Name");
       }
}
很简单吧
SessionFactory.cs类:
public class SessionFactory
   {
       public static ISessionFactory CurrentSessionFactory()
       {
           string connstring = "server=.//sqlexpress;uid=sa;database=mybookshop";//连接字符串
           string path = HttpContext.Current.Server.MapPath("~/bin");//配置文件生成目录
           return Fluently.Configure().Database(MsSqlConfiguration.MsSql2005.ConnectionString(connstring))
               .Mappings(m => m.FluentMappings.AddFromAssembly(typeof(SessionFactory).Assembly).ExportTo(path)).BuildSessionFactory();

       }
       private static ISession session;
       public static ISession Session
       {
           get
           {
               if (session == null)
                   session = CurrentSessionFactory().OpenSession();
               return session;
           }
       }
   }
数据访问层UserRolesDAL.cs:
public class UserRolesDAL
   {
       public static IList<UserRoles> GetUserRoles()
       {
           var session = SessionFactory.Session;
           return session.CreateCriteria<UserRoles>().List<UserRoles>();
       }
   }
哈哈!非常简单.
表示层引用一下,就可以使用了

004.png (大小:1.9 K 下载次数:0)

OK!

代码下载:www.hahaman.cn/ASP_NET/thread-349-1-1.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值