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();
            }
    复制代码

      输出:

      

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

  • 相关阅读:
    [CQOI2015]选数
    [AHOI2009]中国象棋
    [ZJOI2012]灾难
    [NOI2018]屠龙勇士
    [APIO2016]划艇
    [ZJOI2011]礼物
    cent 7 识别exfat
    C语言风格的 for 循环(SHELL的循环写法 已验证20200517)
    系统安装时间
    单用户模式修改root密码
  • 原文地址:https://www.cnblogs.com/liuguanghai/p/5031885.html
Copyright © 2011-2022 走看看