草庐IT

NHIBERNATE

全部标签

c# - NHibernate 3.1 NHibernate.Linq.NhRelinqQueryParser 异常 "Sequence contains more than one matching element"

我正在使用Nhibernate3.1/FluentNhibernate1.2当我使用CTRL+F5在Release模式下工作时,我没有遇到任何异常。但是在使用F5的Debug模式下会发生以下异常:此代码的控制台应用程序:_Session.Query().Where(x=>x.Bar=="bar").FirstOrDefault()异常(exception):System.TypeInitializationExceptionwasunhandledMessage=Thetypeinitializerfor'NHibernate.Linq.NhRelinqQueryParser'thre

c# - xxx 实例的标识符从 y 更改为 z

尝试更新数据库中的对象时出现以下错误。有谁知道会发生什么?我已经检查了我所有的数据类型,它们与数据库中的内容相对应。感谢您的任何想法-NHibernate.HibernateExceptionwasunhandledbyusercodeMessage="identifierofaninstanceofDataTransfer.statuswasalteredfrom3to4"Source="NHibernate"StackTrace:atNHibernate.Event.Default.DefaultFlushEntityEventListener.CheckId(Objectobj,

c# - 等于 NHibernate 实体的实现,unproxy 问题

在NHibernate3.0Cookbook中,有一个基本实体类型的示例实现。equals是这样实现的:publicabstractclassEntity{publicvirtualTIdId{get;protectedset;}publicoverrideboolEquals(objectobj){returnEquals(objasEntity);}privatestaticboolIsTransient(Entityobj){returnobj!=null&&Equals(obj.Id,default(TId));}privateTypeGetUnproxiedType(){re

c# - 表达式树 - 不必要的转换为 int32

在处理字节和短裤时,表达式树似乎构建了一个不必要的转换,它们将两边(例如二进制表达式)转换为int32。这是我见过的一些Linq提供程序中的一个问题,每个提供程序都必须剥离这个冗余层才能获得原始表达式。(NHibernate不会删除这一层并在SQL查询中创建一个糟糕的CAST)。//noconversionConsole.WriteLine((Expression>)((s,s1)=>s==s1));//convertstoint32Console.WriteLine((Expression>)((s,s1)=>s==s1));//convertstoint32Console.Writ

c# - NHibernate 一对一映射

我是NHibernate的新手,所以到目前为止对映射等的了解有限,我刚刚遇到了一个需要帮助的场景。我有2个表:评论标记评论我有2个类,如下所示(为简洁起见,我排除了不重要的属性):回顾publicvirtualintReviewId{get;set;}publicvirtualTaggedReviewTaggedReview{get;set;}publicvirtualstringTitle{get;set;}publicvirtualstringDescrip{get;set;}标签评论publicvirtualintReviewId{get;set;}publicvirtualRe

c# - 给新手关于 N 层应用程序的建议

好的,这是给你们的另一个:我开始进入n层应用程序世界。我已经阅读了一些有关该主题的文章,一般建议是n层应用程序的目标是抽象层间功能。因此,基于此,在n层应用程序中,常规模型为:数据访问->业务层->表示由于我是一名.NET开发人员,我认为要增强与多种客户端类型(Silverlight、Web应用程序甚至WinForms客户端)的集成,我应该使用WCF(WindowsCommunicationFoundation)作为业务层的数据服务,因此无论其类型如何,客户端都可以与其通信。另外,我是NHibernate作为ORM的super粉丝。所以我的结构是这样的:数据访问(NHibernate)

c# - nHibernate session 和多线程

我有一个方法有很多使用nHibernatesession的持久性调用,它有效,没问题。但出于多线程原因,我需要重构此方法,从循环内的内容中提取方法。然后我用这个方法创建了一个类。这就像一个正常的重构,但是这个方法调用中的nHibernatesession被破坏了,没有上下文,我没有在任何时候完成它。nHibernate是否存在多线程问题?即使我只执行一个线程,我也会遇到同样的问题。我通过SessionFactory和Façade模式使用nHibernateSession,这意味着,session不是这些对象的字段,它在SessionFactory中是全局的。让它更清晰一点:之前:Met

c# - 你如何让 NHibernate 忽略 POCO 中的属性

我们有POCO,比如:publicclassPerson{publicGuidPersonID{get;set;}publicstringFirstName{get;set;}publicstringLastName{get;set;}publicDateTimeDateOfBirth{get;set;}publicstringVersion{get;set;}}而对应的hbm文件为如果仔细观察,我们有一个Version属性,数据库中没有对应的列?我们只是想让nHibernate忽略这个属性,这就是我们没有把这个属性放在映射文件中的原因。但是它开始抛出错误。有办法解决这个问题吗?

c# - 记录 NHibernate SQL 查询

有没有办法在我的代码中访问完整的SQL查询,包括值?我能够使用log4net记录SQL查询:但是,我也想找到一种方法来从代码中记录SQL查询。这样,我将在我的try/catch语句中记录导致异常的特定SQL查询。现在我必须对SQLFileLog进行数据挖掘,以在发生异常时找到导致异常的查询,但效率不高。 最佳答案 你可以使用拦截器来做到这一点:publicclassLoggingInterceptor:EmptyInterceptor{publicoverrideSqlStringOnPrepareStatement(SqlStri

C#/N 休眠 : Association references unmapped class

几个小时以来,我一直在努力解决这个NHibernate问题。我在网络和NHibernate文档上进行了广泛的研究,但我无法理解这个问题。我对NHibernate比较陌生,但很喜欢它。不过,在那种情况下,它让我发疯。我正在为网站编写一个小型“投票”模块。我有几个类(Poll、PollVote和PollAnswer)。主要的Poll是导致问题的原因。这就是类的样子:publicclassPoll{publicvirtualintId{get;set;}publicvirtualSiteSite{get;set;}publicvirtualstringQuestion{get;set;}pu