所用數據庫是我以前所寫的Nhibernate入門篇的數據庫https://www.cnblogs.com/pandorabox/p/PandoraBox.htmlhtml
第一步:建立一個mvc項目web
第二步:搭建簡單的三層sql
第三步:在dal層和web層分別添加nhibernate的程序包數據庫
第四步:找到下載的nhibernate中的這個文件複製到web層的根目錄session
由於咱們使用的sqlserver,因此這個配置文件的名字改爲Hibernate.cfg.xmlmvc
<?xml version="1.0" encoding="utf-8"?> <!-- This template was written to work with NHibernate.Test. Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it for your own use before compile tests in VisualStudio. --> <!-- This is the System.Data.dll provider for SQL Server --> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" > <session-factory name="NHibernate.Test"> <property name="connection.driver_class">NHibernate.Driver.Sql2008ClientDriver</property> <property name="connection.connection_string"> Server=.;database=NHibernateDemoDB;uid=sa;pwd=root </property> <!--方言:使用某些特定數據庫平臺的特性--> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> <!---指定映射文檔所在的程序集--> <mapping assembly="Model" /> </session-factory> </hibernate-configuration>
將nhibernate的屬性設置爲若是較新就複製app
如今在model層中建立實體類和映射文件ide
代碼我就不展現了,在我上一篇文章裏面sqlserver
第五步:在dal層寫一個nhibernate的幫助類ui
public class Nhelper { private static ISessionFactory _sessionFactory; public static ISessionFactory SessionFactory { get { //實例化session return _sessionFactory == null ? (new Configuration()).Configure().BuildSessionFactory() : _sessionFactory; } } }
第六步:在dal層寫empdal的方法
public class EmpDal { public IList<Emp> GetList(Expression<Func<Emp,bool>> where) { using (ISession session = Nhelper.SessionFactory.OpenSession()) { return session.Query<Emp>().Select(x => new Emp { EmpId = x.EmpId, EmpName = x.EmpName, EmpDate = x.EmpDate }).Where(where).ToList(); } }
第七步:寫bll層的方法
public class EmpBll { public EmpDal empDal; public EmpBll() { this.empDal = new EmpDal(); } public IList<Emp> GetCustomersList(Expression<Func<Emp, bool>> where) { return empDal.GetList(where); } }
第八步:寫控制器層的代碼
public ActionResult Index() { EmpBll bll = new EmpBll(); var result = bll.GetCustomersList(u => true); return View(); }
如今運行一下看是否是把全部的數據都查到了
數據已經顯示出來了。