NHibernate映射与分叉继承模型
我只是从Nhibernate开始,并试图为我的模型进行映射. (这是一种模型第一的TDD方法,现在仅创建数据库) 我的班级Hierachy类似于: 我正在尝试使用映射XML文件现在来绘制如何映射? 这是我的桌子,我希望它们映射到 QuestionID- int- [Question.ID] pmqccCormid -int- [Question.pmqccform.id] inputtedtedanswer -int- [normalQuestion.inputtedanswer或JobvelocityQuestion.inputtedanswer - 它们都是将转换为ints/ints的枚举,如果需要,可以将它们分成单独的列. consectiblestaffid -int- [pialertquestion.responsiblestaffmember.id] 解释-VARCHAR- [Question.Explanation] Qu
4 2024-04-26
编程技术问答社区
NHibernate映射错误([EntityName]未被映射)。
我的项目(C#,NHIBERNATE,NPGSQL,NLOG)具有一个名为Entry的实体,应映射到名为test的数据库表.表包含一些测试条目. 我的应用程序代码如下: public void work() { ISessionFactory sessions = new Configuration().Configure().BuildSessionFactory(); ISession session = sessions.OpenSession(); IList entries = session.CreateQuery("from Entry").List(); foreach (Entry e in entries) { logger.Debug("Entry: " + e.id + " with " + e.name); } } Entry实体看起来像这样:
2 2024-04-26
编程技术问答社区
锁定一个标签的Nhibernate交易
我已经开发了使用NHIBERNATE的WCF API.我是新来的.我已经使用了会议.我有一个用于循环的循环,根据选择条件,我正在更新记录IE.如果tabel1中存在a,则我正在更新表,否则插入新条目. 我得到的"无法执行查询".尝试在表上执行选择查询时,该查询以前通过在表中添加新条目进行了更新. 我的想法是,因为我使用的是session.save(table1),然后尝试从该表中选择条目,所以我会遇到错误.由于session.save暂时锁定表,我无法在该表上执行选择查询. 解决方案是什么? 更新: 这是我用来在数据库中检查某个字段的for循环: using (ITransaction tranx = session.BeginTransaction()) { savefunction(); tranx.Commit(); } 保存功能: public void savefunction() { for (int i = 0;
0 2024-04-26
编程技术问答社区
用于查询的NHibernate DateTime,字符串格式导致的溢出异常
nhibrenate正在生成以下SQL,该SQL不受火鸟的支持; where (struct_cas0_.DELETED IS NULL) and struct_cas0_.ACCOUNT_ID = 372 /* @p0 */ and struct_cas0_.DATE_RECORD = '2006-12-31T00:00:00.00' /* @p2 */ 上面的SQL失败在火鸟中,错误"在数据类型转换过程中发生溢出.字符串转换错误'2005-01-01T00:00:00.00:00.00'" 如果我们从查询中删除" t",则火鸟无问题地执行查询; where (struct_cas0_.DELETED IS NULL) and struct_cas0_.ACCOUNT_I
6 2024-04-26
编程技术问答社区
Nhibernate IsessionFactory的Unity Xml配置
我使用代码为 解决了会话工厂 UnityContainer.RegisterInstance(typeof(ISessionFactory), new NHibernate.Cfg.Configuration().Configure().BuildSessionFactory()); 我的服务将属性定义为 public class myService { [Dependency] public ISessionFactory SessionFactory{get;set;} } ,但不知道如何使用Unity 2的XML配置进行配置. 解决方案 免责声明,此答案与此处讨论的内容更相关/1679310 (评论) 让我为您提供与您的映射有关的更多详细信息. 首先,减少全名: // here we have namespace, not needed below for classes, if is the
2 2024-04-26
编程技术问答社区
DTS交易失败。无法访问一个被处置的对象
我们正在运行分布式交易,在某些极少数情况下,我们会遇到以下错误: system.ObjectDisposedException:无法访问处置对象. 对象名称:" sqldelegatedTransaction".在 system.data.sqlclient.sqldelegatedtransaction.rollback(单次苯基列表 入伍) system.transactions.transactionStatedElegatedAborting.enterstate(内部交流 tx)在system.transactions.transaction.rollback()at system.transactions.transactionscope.internaldispose()at system.transactions.transactionscope.dispose() 当transactionscope脱离范围并且complete()未在范围内调用()时,就会发
6 2024-04-26
编程技术问答社区
NHibernate查询基类时没有左键连接到派生类
我有两个班级,其中一个从另一个类中继承.我试图使用nhibernate映射这些类,以便我可以尽可能高效地查询. 基类是不是抽象的,需要自行查询.基类看起来像这样. public class Cat { public int Id { get; set; } public string Name { get; set; } } 派生的类看起来像这样: public class CustomerCat : Cat { public int CustomerId { get; set; } } 派生的简单扩展了基础,并为其添加了更多属性.我的映射文件看起来像这样
0 2024-04-26
编程技术问答社区
流畅的NHibernate多对多映射,自动生成pk而不是复合键
我正在使用.NET中的Roleprovider工作,使用Fluent Nhibernate映射Oracle 9.2数据库中的表. 问题在于,连接用户和角色的多对多表使用了从序列生成的主要键,而不是复合键.我无法真正改变这一点,因为我正在写它以在较大的现有系统中实现. 这是我的usermap: public UserMap() { this.Table("USR"); HasMany(x => x.Memberships).Cascade.All() .Table("MEMBERSHIP").Inverse().LazyLoad(); HasManyToMany(x => x.Roles) .Table("USR_ROLE") .Cascade.SaveUpdate()
6 2024-04-26
编程技术问答社区
NHibernate父映射不创建子外键
我只是在学习Nhibernate.我一直在使用文档中的示例和Stackoverflow,但我必须缺少一些东西. 我有一个父母,有一个孩子的收藏.如果没有父母,孩子是毫无意义的,因此数据库的FK设置为​​不为空.从孩子到父母的NHibernate都可以正常工作,尽管我不需要这个关系方向. 相反,我试图实现拥有关系的父母,但是我始终获得一个数据库错误,"无法将值插入parent_id中".保存时,父母的ID和父母的实体都不会存储在孩子中. 请参阅下面的代码示例.请建议. 类文件 public class PARENT { private readonly IList _children = new List(); public virtual Id { get; set; } public virtual void AddChild(CHILD child) { _children.add(child);
4 2024-04-26
编程技术问答社区
NHibernate。连接表的连接映射
我有一个视图将3个表连接在一起的链条中,我需要用Nhibernate映射替换,而无需对数据库进行任何更改.这可能吗? 这是我观点的简化示例: SELECT tblTable1.*,tblTable2.*,tblTable3.MyProperty FROM tblTable1 OUTER JOIN tblTable2 ON tblTable1.Table1Key = tblTable2.Table1Key OUTER JOIN tblTable3 ON tblTable2.Table2Key = tblTable3.Table2Key 基本上,我们选择tbltable1并加入tbltable2,这对我来说在nhibernate中有效.我的问题是tbltable3.如何从加入的表Tbltable2上加入属性? 当我这样做的映射时,我会发现一个查询,试图在table1key上加入tbltable3.
0 2024-04-26
编程技术问答社区
nunit assert.areequal(对象A,对象b)假阴性?
我不明白为什么nunit assert.areequal失败. var dataService = new DataService(db); dataService.Set("Tests", "circle1", circle); var circleData = dataService.Get("Tests", "circle1"); Assert.IsNotNull(circleData); var circleCopy = circleData.Get(); Assert.AreEqual(circle, circleCopy); 使用nhibernate(存储序列化数据,然后对其进行序列化).我插入了一个断点并在本地变量窗口中检查了对象 - 它们是相同的. 这是Nunit消息: Assert.AreEqual failed. Expected:. Actual:
10 2024-04-26
编程技术问答社区
NHIbernate影响非Nhibernate的查询?
我对Nhibernate遇到了一个奇怪的问题,并且看到这是我的第一个Nhibernate项目,我想我会问Stackoverflow.com的好人. 我正在遵循ASP.NET中的"开放式会话"模式,该模式在每个请求上打开冬眠事务,并在请求结束时进行提交. 这正常工作,但是在我的一个页面上,这只是一个读页,而不是写页,我会遇到问题.该页面获取了一个项目列表,并根据信息进行了一些查询. 作为其中的一部分,它称为外部DLL,它在其内部具有SQL查询.此调用似乎适用于所有项目,除了一个项目,在该项目中,它在executereader()呼叫上获得了超时. 试图在外部DLL中找到错误一段时间后,我决定评论建立HTTP处理程序内部交易的问题. 因此,以某种方式冬眠的会话管理会影响外部,无关(好吧,某些映射有可能触及该查询中使用的相同数据库,但是它仅在两端读取) ) ) 我的问题是,为什么要这样做?在引擎盖下,Nhibernate在引起其他SQL查询的暂停状态是什
6 2024-04-26
编程技术问答社区
在nhibernate中选择最新组别
我的应用程序中有犬和犬肉手对象. CanineHandler对象具有一个个性化(引用一个完全不同的数据库),一个有效的(指定处理程序何时从犬只开始),而FK引用了犬(canineid). 鉴于一个特定的人物,我想找到他们当前负责的所有犬.我在SQL中使用的(简化的)查询将是: Select Canine.* from Canine inner join CanineHandler on(CanineHandler.CanineID=Canine.CanineID) inner join (select CanineID,Max(EffectiveDate) MaxEffectiveDate from caninehandler group by CanineID) as CurrentHandler on(CurrentHa
2 2024-04-26
编程技术问答社区
用NHibernate连接到Sybase IQ
我想连接到Sybase IQ数据库,该数据库通过Fluent Nhibernate躺在服务器上:我将C#与NHIBERNATE版本3.3.1.4 一起使用. 我正在使用此处的代码: 我试图对此采用约束: private SessionManager() { sessionFactory = Fluently.Configure() .Database(SQLAnywhereConfiguration.SQLAnywhere11.ConnectionString("server=SERVER_NAME:PORT; user=USER_NAME; password=PASSWORD; database=DATABASE")) .Mappings(m => m.FluentMappings.AddFromAssemblyOf()) .ExposeConfiguration(x => x.SetProperty("current
2 2024-04-26
编程技术问答社区
存储过程在nHibernate中不工作
目标: 通过支持NHIBERNATE的存储过程,将数据检索到类中.您可以使用NHIBERNATE使用存储过程来检索数据. 问题: 我检索一条错误消息说: 类型的未经手的例外 'nhibernate.exceptions.genericadoexception'发生在nhibernate.dll 中 其他信息:无法执行查询 [exec sp_retrieveallproductCategory] ​​ [sql:exec sp_retrieveallproductCategory] ​​ 我不知道在这种情况下该怎么办. 信息: 我正在使用VS 2013和SQL Server 2012 test.hbm.xml
4 2024-04-26
编程技术问答社区
NHibern-"不存在具有给定标识符的行",但它确实存在。
我正在使用nhibernate,当我使用会话的方法时出现此错误. 这是我的代码: public T GetById(object id) { T entity; entity = (T)ReportHttpModule.CurrentSession.Get(typeof(T), id); return entity; } 请注意,在调用该方法之前使用CreateCriteria(T)时我不会遇到此错误! 解决方案 我找到了解决方案.这很奇怪,但这是映射文件的问题.我的一列中有not-null="true"在映射文件中具有not-null="true",但在数据库中并非无效!
2 2024-04-26
编程技术问答社区
流利的NHibernate连接的属性值
我正在尝试加入桌子以重新播放并在poco上设置属性.这是场景... *注意 - 应用程序可以属于许多用户会话. 用户(表) UserSessionId PK ApplicationId FK UserName 应用程序(表) ApplicationId PK Name 用户(POCO) string UserName get; string ApplicationName get; 我尝试了这样的加入: Join("Application", j => j.Inverse().KeyColumn("ApplicationId").Map(x => x.ApplicationName)); 但是,这使用了Join列的用户的主要列.查询的一部分看起来像这样: /**SNIP**/ inner join Auditing.UserSession US on this_.UserSessionId=US.UserSession
4 2024-04-26
编程技术问答社区
NHibernate:hql到标准查询-需要帮助
我有这个HQL查询,它的工作原理: select m from Media m join m.Productlines p join m.Categories c join m.Spaces sp join m.Solutions so where m.Uid != 0 and p.Uid in (:productlines) and c.Uid in (13) and sp.Uid in (52) and so.Uid in (15,18) group by m.Uid ,但现在它需要进行参数化/使动态化,不仅是参数,而
4 2024-04-26
编程技术问答社区
NHibernate组件与父级的一对多关系
说我有一个队列表和一个工作表.在工作表中,有一个用于队列表的外键列列式列,即 queue.id 使用流利的nhibrenate将其映射到队列类中的属性非常简单,即 /* QueueMap */ HasMany(x => x.Jobs) .KeyColumnNames.Add("QueueId"); ,但假设我有一个很好的理由在之间上课,说 . public class Queue { public Group Group { get; set; } } public class Group { public IList Jobs { get; private set; } } 然后,我需要使用一个组件,即. /* QueueMap */ Component( x => x.Group, y => y.HasMany(x => x.Jobs).KeyColumnNames.Add("QueueId") )
2 2024-04-26
编程技术问答社区