Questions tagged «nhibernate»

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

5
什么是高/低算法?
什么是高/低算法? 我已经在NHibernate文档中找到了这一点(这是生成唯一密钥的一种方法,第5.1.4.2节),但是我没有找到有关其工作原理的很好的解释。 我知道Nhibernate可以处理它,并且我不需要了解内部,但是我很好奇。


4
NHibernate ISession Flush:何时何地使用它,为什么?
使我彻底困惑的一件事是session.Flush,与session.Commit和结合使用session.Close。 有时session.Close可行,例如,它会提交我需要的所有更改。我知道我在有事务或具有多个创建/更新/删除的工作单元时需要使用提交,以便在发生错误时可以选择回滚。 但是有时候我确实被背后的逻辑所束缚session.Flush。我看过一些例子,其中有一个session.SaveOrUpdate()后跟冲洗功能,但是当我删除“冲洗”功能后,它仍然可以正常工作。有时,我在Flush语句上遇到错误,说会话超时,将其删除可以确保我没有遇到该错误。 是否有人在哪里或何时使用同花顺有很好的指导原则?我已经检查了NHibernate文档,但是仍然找不到简单的答案。

16
NHibernate.MappingException:没有持久性:XYZ
现在,在您说出来之前:我做了 Google,我的hbm.xml文件是 Embedded Resource。 这是我正在调用的代码: ISession session = GetCurrentSession(); var returnObject = session.Get<T>(Id); 这是我的班级映射文件: <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name="HQData.Objects.SubCategory, HQData" table="SubCategory" lazy="true"> <id name="ID" column="ID" unsaved-value="0"> <generator class="identity" /> </id> <property name="Name" column="Name" /> <property name="NumberOfBuckets" column="NumberOfBuckets" /> <property name="SearchCriteriaOne" column="SearchCriteriaOne" /> <bag name="_Businesses" cascade="all"> <key column="SubCategoryId"/> …
134 c#  .net  nhibernate 


10
实体框架4与NHibernate [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 改善这个问题 在网络上(以及在stackoverflow上)已经谈论了很多关于Entity Framework第一版的问题,很明显,当我们已经有了更好的替代方案(如NHibernate)时,这不是一个好选择。但是我找不到Entity Framework 4和NHibernate的很好比较。可以说,今天NHibernate是所有.NET ORM的领导者,但是我们可以期望Entity Framework 4取代NHibernate。我认为,如果Microsoft确实在EF4中注入了非常好的功能,则它可以与NHibernate竞争,因为它具有Visual Studio集成,易于使用并且在大多数商店中总是优先考虑MS产品。

1
Moq:在不可重写成员上的无效设置:x => x.GetByTitle(“ asdf”)
不确定如何解决此问题,尝试对方法“ GetByTitle”进行单元测试 这是我的定义: public class ArticleDAO : GenericNHibernateDAO(IArticle, int>, IArticleDAO { public IArticle GetByTitle(string title) { IQuery query = Session.CreateQuery("...") return query.UniqueResult<IArticle>(); } } public interface IArticleDAO { IArticle GetByTitle(string title); } 单元测试: [Test] public void can_load_by_title() { _mockDaoFactory.Setup(x => x.GetArticleDao()) .Returns(_mockArticleDao.Object); _mockArticleDao.Setup(x => x.GetByTitle("some title")) .Returns(article1.Object); _articleManager.LoadArticle("some title"); Assert.IsNotNull(_articleManager.Article); …
111 c#  nhibernate  nunit  resharper  moq 



20
是否有充分的理由不使用ORM?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 在学徒期间,我将NHibernate用于一些较小的项目,这些项目我大多是自己编写和设计的。现在,在开始一个更大的项目之前,讨论了如何设计数据访问以及是否使用ORM层。因为我仍在学徒生涯中,并且仍然认为自己是企业编程的初学者,所以我并没有真正尝试推动,因为将对象关系映射器用于数据库可以极大地简化开发。开发团队中的其他编码人员比我更有经验,所以我认为我会按照他们的意愿去做。:-) 但是,我不完全理解不使用NHibernate或类似项目的两个主要原因: 可以只使用SQL查询构建自己的数据访问对象,然后将这些查询复制到Microsoft SQL Server Management Studio中。 调试ORM可能很困难。 因此,我当然可以使用很多SELECTs等构建我的数据访问层,但是在这里我错过了自动联接,延迟加载代理类以及如果表获得新列或获得列减少维护工作量的优势。重命名。(更新众多SELECT,INSERT并且UPDATE查询与更新映射配置,并可能重构业务类和DTO的。) 另外,如果您不太了解框架,使用NHibernate可能会遇到无法预料的问题。例如,这可能是信任Table.hbm.xml,您可以在其中设置要自动验证的字符串长度。但是,我也可以想象“简单”的基于SqlConnection查询的数据访问层中的类似错误。 最后,上述那些论点真的是不对基于普通数据库的企业应用程序使用ORM的充分理由吗?他们/我可能错过了其他论点吗? (我可能应该补充一点,我认为这就像第一个基于“ NET” / C#的“大型”应用程序,需要团队合作。良好的实践(在单元测试或持续集成等方面在Stack Overflow上被视为很正常) -到目前为止一直存在。)
107 c#  nhibernate  orm  enterprise 

2
TransactionScope如何回滚事务?
我正在编写一个集成测试,该测试将在数据库中插入许多对象,然后检查以确保我的方法是否检索到这些对象。 我与数据库的连接是通过NHibernate进行的,而创建此类测试的常用方法是执行以下操作: NHibernateSession.BeginTransaction(); //use nhibernate to insert objects into database //retrieve objects via my method //verify actual objects returned are the same as those inserted NHibernateSession.RollbackTransaction(); 但是,我最近发现了TransactionScope,显然可以用于此目的... 我发现的一些示例代码如下: public static int AddDepartmentWithEmployees(Department dept) { int res = 0; DepartmentAdapter deptAdapter = new DepartmentAdapter(); EmployeeAdapter empAdapter = new EmployeeAdapter(); using (TransactionScope …

4
将IList或IEnumerable转换为数组的最佳方法
我有一个HQL查询,可以生成结果的IList或结果的IEnumerable。 但是,我希望它返回我选择的Entity的数组,实现该目标的最佳方法是什么?我可以枚举它并构建数组,也可以使用CopyTo()一个定义的数组。 有什么更好的办法吗?我采用了CopyTo方法。
98 c#  nhibernate 

2
Criteria SpatialRestrictions.IsWithinDistance NHibernate.Spatial
有没有人实现这个,或者知道实现这个困难/是否有任何指针? public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance) { // TODO: Implement throw new NotImplementedException(); } 来自NHibernate.Spatial.Criterion.SpatialRestrictions 我可以在hql中使用“ where NHSP.Distance(PROPERTY,:point)”。但是要将此查询与我现有的条件查询结合在一起。 目前,我正在创建一个粗糙的多边形,并使用 criteria.Add(SpatialRestrictions.Intersects("PROPERTY", myPolygon)); 编辑 通过在SpatialRelationCriterion上重载构造函数,并添加新的SpatialRelation.Distance,获得了一个原型工作。 public static SpatialRelationCriterion IsWithinDistance(string propertyName, object anotherGeometry, double distance) { return new SpatialRelationCriterion(propertyName, SpatialRelation.Distance, anotherGeometry, distance); } 在SpatialRelationCriterion中添加了一个新字段 private readonly double? distance; public …

3
NHibernate中的逆属性
如何使用逆属性?如果我没记错的话,对于一对多关系,必须将inverse属性设置为true。对于多对多关系,必须将实体类逆属性之一设置为true,将另一个属性设置为false。 任何人都可以对此有所了解吗?


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.