NHibernate的一个示例

一:创建POCO实体

工厂表FactoryEntity,关联企业表CompanyEntiry,company_id关联t_pm_company表

/// <summary>
        /// 企业表
        /// </summary>
        [ManyToOne(Name = "CompanyEntity", ClassType = typeof(CompanyEntity),
            Lazy = Laziness.Proxy, NotFound = NotFoundMode.Ignore, Column = "company_id",
            Unique = true, Insert = false, Update = false)]
        public virtual CompanyEntity CompanyEntity
        {
            set;
            get;
        }

二:定义Dao增删改查的接口,实现Dao增删改查的接口

配置DAL.XML

  <object id="companyDao" type="PCITC.IMMC.PM.DAL.CompanyDao,PCITC.IMMC.PM.DAL">
    <constructor-arg name="sessionFactory" ref="sessionFactory" />
  </object>

三:定义BLL里的Entity

四:定义BLL增删改查的接口,实现BLL增删改查的接口  

五:配置映射AutoMapper

public static Entity.PMEntity.FactoryEntity ToPoco(this  ExEntity.PMEntity.FactoryEntity entity)
        {
            var result = Mapper.DynamicMap(entity,
                    typeof(ExEntity.PMEntity.FactoryEntity), typeof(Entity.PMEntity.FactoryEntity));
            return (Entity.PMEntity.FactoryEntity)result;
        }

六:定义Service增删改查的接口,实现Service增删改查的接口

七:配置BLL.XML

  <!-- 工厂 -->
  <object id="factoryBasicData" type="PCITC.IMMC.BasicData.FactoryBasicData,PCITC.IMMC.BasicData">
    <property name="factoryBll" ref="factoryBll"/>
  </object>
  <object id="factoryBll" type="PCITC.IMMC.PM.BLL.Classes.FactoryBll,PCITC.IMMC.PM.BLL.Classes">
    <property name="factoryDao" ref="factoryDao"/>
  </object>

 八:配置Controller.XML

  <!--******************************************工厂模型Controller层注入******************************************************-->
  <object id="factoryController" type="PCITC.IMMC.UI.Areas.PM.Controllers.FactoryController, PCITC.IMMC.UI" singleton="false">
    <property name="factoryBasicData" ref="factoryBasicData" />
  </object>

注意:配置文件的object节点的id属性,property 的name,ref属性,首字母要小写。否则依赖注入会失败。

九:view里调用action,controller实现查询返回json数据给view

<div id="datagrid1" class="mini-datagrid" style="800px;height:280px;" allowresize="true"
     url="@Url.Action("GetPageListFactory")" idfield="id" multiselect="true">
public JsonResult GetPageListFactory(int pageIndex, int pageSize, string sortField, string sortOrder, string Name, string StdCode, string InUse) 
        { 
FactoryEntity model = new FactoryEntity();
long totalCout = 0; IEnumerable
<ExEntity.PMEntity.FactoryEntity> models = factoryBasicData.GetPageList(pageIndex + 1, pageSize, sortField, sortOrder, model, ref totalCout); return Json(models); }
原文地址:https://www.cnblogs.com/xiaoyueryeah/p/7159583.html