Questions tagged «nhibernate»

NHibernate是.NET框架的开源对象关系映射器(ORM)。



2
无法将类型为NHibernate.Collection.Generic.PersistentGenericBag的对象转换为列表
我有一个称为ReportRequest的类,如下: public class ReportRequest { Int32 templateId; List<Int32> entityIds; public virtual Int32? Id { get; set; } public virtual Int32 TemplateId { get { return templateId; } set { templateId = value; } } public virtual List<Int32> EntityIds { get { return entityIds; } set { entityIds = value; } …

3
在同一解决方案中引用2个不同版本的log4net
我正在使用引用log4net 1.2.10.0的NHibernate 2.1.2.400。在同一项目中,我还使用了简单的记账SDK,可悲的是它仍在使用log4net 1.2.9.0。 因此,如果我引用log4net 1.2.10.0,但我可以使NHibernate正常工作,但是simpleSDK无法正常工作。反之亦然... 我猜大多数问题都来自log4net更改了其组装密钥这一事实。我尝试使用绑定重定向没有成功:2个DLL没有相同的密钥。 我正在考虑重新编译NHibernate以使用log4net 1.2.9.0,但似乎做错了,我的感觉是,Simply Accounting不会很快更新其SDK以使用log4net 1.2.10.0。 处理此问题的最佳方法是什么?有可能解决吗?
80 .net  nhibernate  dll  log4net 

6
如何在NHibernate中删除子对象?
我有一个父对象,它与子对象的IList具有一对多的关系。删除子对象的最佳方法是什么?我没有删除父母。我的父对象包含子对象的IList。这是一对多关系的映射: <bag name="Tiers" cascade="all"> <key column="mismatch_id_no" /> <one-to-many class="TGR_BL.PromoTier,TGR_BL"/> </bag> 如果我尝试使用clear()从集合中删除所有对象,然后调用SaveOrUpdate(),则会出现此异常: System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 如果我尝试分别删除子对象,然后将它们从父对象中删除,则会出现异常: deleted object would be re-saved by cascade 这是我第一次处理在NHibernate中删除子对象。我究竟做错了什么? 编辑:只是为了澄清-我不是要删除父对象,只是子对象。我与父母建立了一对多的关系。我还需要在子对象映射上创建多对一关系吗?
79 nhibernate 

15
亚音速vs NHibernate
什么时候使用其中一种工具不利于另一种工具的共识是什么?我发现Subsonic在快速完成工作方面非常有用,但是在大型项目中,它往往无法扩展,并且将您的域模型与数据库模型联系在一起。这就是Nhibernate出现的地方,因为它为您提供了与数据库模型无关的轻量级POCO,但是建立时间更长。


3
何时在NHibernate / Hibernate OneToMany关系上使用inverse = false?
我一直试图了解Hibernate的inverse属性,但这似乎只是概念上困难的事情之一。 我得到的要点是,当您拥有一个使用一对多映射的Child对象集合的父实体(例如Parent)时,在映射上设置inverse = true会告诉Hibernate'另一面(子)有责任自行更新以维护其表中的外键引用。 在将Children添加到代码中的集合中,然后保存Parent(设置了cascade-all)时,这样做似乎有两个好处:您可以在数据库上保存不必要的命中(因为没有设置逆设置,Hibernate认为这样)有两个地方可以更新FK关系),并且根据官方文档: 如果关联的列声明为NOT NULL,则NHibernate在创建或更新关联时可能会导致约束冲突。为防止出现此问题,必须使用双向关联,将多个值端(集合或包)标记为inverse =“ true”。 到目前为止,这一切似乎都有意义。我不明白是这样的:你什么时候会不希望使用逆=真正在一个一对多的关系?

12
在保持排序的同时将排序列表保存到数据库的最佳方法
我想知道是否有人能很好地解决我在过去几年中多次遇到的问题。 我有一个购物车,我的客户明确要求其订单量很大。因此,我需要将订单保留到数据库。 显而易见的方法是简单地插入一些OrderField,在其中我将数字0分配给N并以这种方式对其进行排序。 但是这样做会使重新订购变得更加困难,而且我不知何故觉得此解决方案有些脆弱,总有一天会再次出现在我身上。 (我将C#3,5与NHibernate和SQL Server 2005一起使用) 谢谢

3
将同一实体映射到不同的表
一点领域知识 我正在写一个POS(销售点)软件,该软件可以付款或退款。付款或退款时,需要指定使用哪种汇款方式:现金,EFT(〜=信用卡),会员卡,代金券等。 这些汇款方式是一组有限的已知值(一种枚举)。 棘手的是,我需要能够在POS终端上存储这些方式的自定义子集,以用于付款和退款(两组可能不同)。 例如: 可用付款方式:现金,电子转帐,会员卡,优惠券 可用退款方式:现金,代金券 实施现状 我选择实施汇款的概念意味如下: public abstract class MoneyTransferMean : AggregateRoot { public static readonly MoneyTransferMean Cash = new CashMoneyTransferMean(); public static readonly MoneyTransferMean EFT = new EFTMoneyTransferMean(); // and so on... //abstract method public class CashMoneyTransferMean : MoneyTransferMean { //impl of abstract method } public …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.