NHibernate 操作视图 第十三篇
2015-12-09 09:54
295 查看
NHibernate 操作视图 第十三篇
在NHibernate中,可以把视图当表一样操作,只需要记住一点就是,视图是只读的,因此映射实体的setter应该改为protected。
新建一个视图如下:
![](http://images.cnitblog.com/blog/347600/201309/20235314-d1b9b1e254774350b8e746707da221e5.jpg)
持久化类:
映射文件:
操作实例:
输出:
![](http://images.cnitblog.com/blog/347600/201309/20235512-ec7d490459814fe9a59c993bd9548dec.jpg)
感觉这篇文章有点多余,因为操作视图非常简单,可以当普通表一样操作。
在NHibernate中,可以把视图当表一样操作,只需要记住一点就是,视图是只读的,因此映射实体的setter应该改为protected。
新建一个视图如下:
![](http://images.cnitblog.com/blog/347600/201309/20235314-d1b9b1e254774350b8e746707da221e5.jpg)
持久化类:
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(); }
输出:
![](http://images.cnitblog.com/blog/347600/201309/20235512-ec7d490459814fe9a59c993bd9548dec.jpg)
感觉这篇文章有点多余,因为操作视图非常简单,可以当普通表一样操作。
相关文章推荐
- 夺命雷公狗---javascript NO:15 事件冒泡3
- Linux环境下忘记mysql密码处理方法
- Errors running builder "Integrated External Tool Builder" on project
- 网络营销包含哪些方面的知识听太原郭文军细讲
- Java -- 通过反射处理bean对象
- Web Dynpro ABAP---ALV控件的使用
- 如何本地调试微信接口
- js实现跨域访问的三种方法
- 使用GIT期间遇到的问题(持续更新)
- easyui分页显示本地log4j文件+文件下载+打包下载
- Fragment和Activity的交互
- ios 截屏操作
- NHibernate 存储过程 第十四篇
- NHibernate 过滤器(第十五篇)
- 接口测试从未如此简单 - Postman (Chrome插件)【转】
- 夺命雷公狗---javascript NO:14 事件冒泡2
- 搭建kafka集群
- 关于Integer大小比较的问题
- 专注于提高“人肉测试”效率,Bugtags已完成600万元天使轮融资
- Android Studio SVN配置忽略文件