zoukankan      html  css  js  c++  java
  • NHibernate 操作视图 第十三篇

      在NHibernate中,可以把视图当表一样操作,只需要记住一点就是,视图是只读的,因此映射实体的setter应该改为protected。

      新建一个视图如下:

      

      持久化类:

        public class CountryPersonModel
        {
            public virtual int PersonId { get; protected set; }
            public virtual string PersonName { get; protected set; }
            public virtual string CountryName { get; protected set; }
        }

      映射文件:

    复制代码
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
      <class name="Model.CountryPersonModel,Model" table="Country_Person_View">
        <id name="PersonId" column="PersonId" type="Int32">
          <generator  class="native"/>
        </id>
        <property name="PersonName" column="PersonName" type="String"/>
        <property name="CountryName" column="CountryName" type="String"/>
      </class>
    </hibernate-mapping>
    复制代码

      操作实例:

    复制代码
            static void Main(string[] args)
            {
                ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory();
                using (ISession session = sessionFactory.OpenSession())
                {
                    IList<CountryPersonModel> ListCP = session.Query<CountryPersonModel>().ToList();
                    foreach (CountryPersonModel cp in ListCP)
                    {
                        Console.WriteLine(cp.PersonId + ":" + cp.PersonName + ":" + cp.CountryName);
                    }
                }
    
                Console.ReadKey();
            }
    复制代码

      输出:

      

      感觉这篇文章有点多余,因为操作视图非常简单,可以当普通表一样操作。

  • 相关阅读:
    深入理解Java虚拟机二之Java内存区域与内存溢出异常
    深入理解java虚拟机一之走进Java
    数据结构之链表
    Spring AOP 详解
    Spring IOC 注入方式详解 附代码
    图的广度优先遍历
    图的深度优先遍历
    MySql 中的<=>操作符
    mysql数据库explain命令用法详解
    Java虚拟机内存分配详解
  • 原文地址:https://www.cnblogs.com/liuguanghai/p/5031885.html
Copyright © 2011-2022 走看看