nhibernate 中 lazy="no-proxy" 时的问题】的更多相关文章

在 nhibernate,如果将实体的一个关联属性配置为 lazy="no-proxy",那么,从其他属性计算出来的属性不能正确更新.例如,将以下代码中 Foo.Bar 配置为 lazy="no-proxy" ,属性 c 不能正确持久化. public class Foo { public virtual Bar Bar { get; set; } public virtual int a { get; set; } public virtual int b { g…
2010-07-15 12:10 by 彭白洋, 322 阅读, 0 评论, 收藏, 编辑 NHibernate中 Many-To-One 中lazy="proxy" 延迟不起作用的原因是因为设置了 not-found="ignore" 花费了一上午事件 查遍了Google 在最后准备放弃的时候突然想到把其他属性去掉试试,果然去掉not-found后效果出现了 至于原因是什么也不明白,项目紧也没太深入研究NH. 哪位大侠知道怎么回事了,指点一下小弟啊!…
如果你曾经用过NHibernate 2.0或者更高的版本,那您一定碰到过下面的错误:NHibernate.InvalidProxyTypeException: The following types may not be used as proxies: NHibernateExamples.Entities.OrderLine: method get_UnitPrice should be 'public/protected virtual' or 'protected internal vi…
本节内容 什么是并发控制? 悲观并发控制(Pessimistic Concurrency) 乐观并发控制(Optimistic Concurrency) NHibernate支持乐观并发控制 实例分析 结语 什么是并发控制? 当许多人试图同时修改数据库中的数据时,必须实现一个控制系统,使一个人所做的修改不会对他人所做的修改产生负面影响.这称为并发控制. 简单的理解就是2个或多个用者同时编辑相同的数据.这里的用者可能是:实际用户.不同服务.不同的代码段(使用多线程),及其在断开式和连接式情况下可能…
在NHibernate中使用memcache二级缓存 一.Windows下安装Memcache  1. 下载   http://jehiah.cz/projects/memcached-win32/    memcached 1.2.1 for Win32 binaries : 2. 解压 到 D:/memcached: 3. 安装   D:/memcached /memcached.exe -d install 4. 启动   D:/memcached /memcached.exe -d st…
本篇文章介绍的是NHibernate的各种API及其作用. 下图描述了NHibernate的API在分层架构中的作用,下面将进行详细说明. NHibernate的接口大致分为四类:1.  被应用程序调用进行基本数据操作(增.删.改.查)的接口.这些接口是应用程序的业务逻辑层和控制层与NHibernate的主要交互点.ISession, ITransaction, IQuery和ICriteria属于此类.2. 被应用程序用来配置NHibernate的接口.Configuration就属此类.3.…
NHibernate中Session是线程不安全的,而且每次数据库操作 请求创建Session时对性能有些影响.在Windows应用中可以通过 [ThreadStatic]特性很简单的就可以实现线程安全,而在Web中可以通过将Session与用于请求HttpContext绑定实现线程安全,并且用户当前请求时只有一个Session.代码如下: ISessionManage.cs using System;using NHibernate; namespace Commercial.Jwsoft.F…
在.net 4.0中增加一个延迟加载类Lazy<T>,它的作用是实现按需延迟加载,也许很多人用过.一个典型的应用场景是这样的:当初始化某个对象时,该对象引用了一个大对象,需要创建,这个对象的创建时需要较长的时间,同时也需要在托管堆上分配较多的空间,这样可能会在初始化时变得很慢,尤其是UI应用时,会导致用户体验很差.其实狠多时候并不需要马上就获取大数据,只是在需要时获取,这种场景就很适合延迟加载了.先看看c#中Lazy<T>如何使用的吧: class LargeObject { pu…
本节内容 什么是并发控制? 悲观并发控制(Pessimistic Concurrency) 乐观并发控制(Optimistic Concurrency) NHibernate支持乐观并发控制 实例分析 结语 什么是并发控制? 当很多人试图同一时候改动数据库中的数据时,必须实现一个控制系统,使一个人所做的改动不会对他人所做的改动产生负面影响. 这称为并发控制. 简单的理解就是2个或多个用者同一时候编辑同样的数据. 这里的用者可能是:实际用户.不同服务.不同的代码段(使用多线程),及其在断开式和连接…
关于datetime类型使用:  Oracle:  "and tb.EffectiveDate >= to_date(?,'yyyy-mm')" Sql:  "and tb.EffectiveDate >= Date(?,'yyyy-mm-dd')" Postgre: "and tb.EffectiveDate >= date(?)" 在Nhibernate中查询SqlServer ISQLQuery sqlQuery = Se…