草庐IT

NHibernate3

全部标签

c# - NHibernate vs Entity Framework 6 对大量用户的性能

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我正在构建应该经常与数据库通信的大型Web应用程序。我想知道应该使用哪个库来通信NHibernate或EntityFramework6?这是我的应用规范:用户:为大量用户构建的应用程序,让我们从100,000名注册用户开始。50,000用户在线,每个用户每秒最多发送1条消息。每秒发送15,000条消息。内存:保持内存处于正常状态非常重要,所以我想我应该使用LazyLoad?数据库:数据库结

c# - NHibernate 中的多对多删除级联

我在一个系统中有一个场景,我试图尽可能地简化它。我们有一个(让我们称之为)人工制品表,人工制品可以被任意数量的安全角色访问,安全角色可以访问任意数量的人工制品。因此,我们在数据库中有3个表-一个描述人工制品,一个描述角色和一个将人工制品ID链接到角色ID的多对多关联表。在领域方面,我们有两个类-一个用于角色,一个用于人工制品。artefact类有一个IList属性,该属性返回可以访问它的角色列表。(然而,角色不提供属性来获取可以访问的人工制品)。因此,artefact的nhibernate映射包含以下内容;这一切都很好,如果我删除一个人工制品,关联表会被适本地清理,并且被删除的人工制品

c# - 如何在 NHibernate 中映射图像类型?

我的SQLServer2000数据库中有一个类型为Image的列。我怎样才能将它映射到NHibernate? 最佳答案 我们在映射配置文件上使用了BinaryBlob,在属性上使用了byte[]。 关于c#-如何在NHibernate中映射图像类型?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/337789/

c# - NHibernate IQueryable 集合作为根的属性

我有一个根对象,它有一个集合属性。例如:IhaveaShelfobjectthathasBooks.//NowpublicclassShelf{publicICollectionBooks{get;set;}}//WantpublicclassShelf{publicIQueryableBooks{get;set;}}我想要完成的是返回一个IQueryable集合,这样我就可以直接从父集合运行分页和过滤。varshelf=shelfRepository.Get(1);varfiltered=frombookinshelf.Bookswherebook.Name=="TheGreatGa

C# Lambda 表达式和 NHibernate

我是NHibernate伟大世界的新手。我使用的是2.0.1.GA版。这是我的问题。我有一个表Cars,其中包含列Manufacturer(nvarchar(50))和一个主键ID(int)。我的.NET类是:publicclassCar{publicvirtualintID{get;set;}publicvirtualstringManufacturer{get;set;}}现在,如果我想检索梅赛德斯制造的所有汽车,我必须输入:using(varsession=OpenSession()){varcars=session.CreateCriteria(typeof(Car)).Add

c# - 我是否应该始终在 nhibernate 中使用事务(即使是简单的读写)?

我知道对于多部分写入,我应该在nhibernate中使用事务。但是对于简单的读写(1部分)呢……我读到始终使用事务是一种很好的做法。这是必需的吗?我应该做以下简单阅读吗?或者我可以将交易部分全部放在一起吗?publicPrinterJobRetrievePrinterJobById(Guidid){using(ISessionsession=sessionFactory.OpenSession()){using(ITransactiontransaction=session.BeginTransaction()){varprinterJob2=(PrinterJob)session.G

c# - 确保 NHibernate SessionFactory 只创建一次

我编写了一个NHibernateSessionFactory类,它包含一个静态NhibernateISessionFactory。这用于确保我们只有一个session工厂,并且第一次调用OpenSession()时我创建了实际的SessionFactory-下次我使用它并在其上打开一个session。代码如下所示:publicclassNhibernateSessionFactory:INhibernateSessionFactory{privatestaticISessionFactory_sessionFactory;publicISessionOpenSession(){if(_

c# - NHibernate ISet 与 IList

在大多数NHiberate示例中,他们使用ISET而不是IList。我知道两者之间的基本区别即一个集合是唯一的。但是,我不确定为什么他们在延迟加载时使用ISet而不是IList。(Iesi.Collections.Generic)ISet相对于IList有什么优势?延迟加载时的特殊性。 最佳答案 我相信这主要是由于NHibernate的java继承。参见theFAQentryonpersistentcollections.特别提到Java默认情况下如何包含比C#更多的集合,并且它们特别映射到ISet。我相信大多数示例使用它的原因主要

c# - 将断开连接的对象附加到 NHibernate session ;最佳实践?

我的存储库在UnitOfWork模型中工作;所有操作,无论是检索还是持久化,都必须在IDisposableUnitOfWorktoken对象的范围内执行,该对象在幕后与Session执行请求的工作。所以,基本模式是:using(varuow=repo.BeginUnitOfWork()){try{//DBoperationshere;allrepomethodsrequirepassinginuow....repo.CommitUnitOfWork(uow);}catch(Exception){repo.RollbackUnitOfWork(uow);throw;}}我还实现了一些包装

c# - 有没有流利的 NHibernate 书?

考虑到FluentNHibernate已经有一段时间了,我想应该会有一本书可以买到,所以我在亚马逊和谷歌中搜索,但没有关于fluentnhiberanet的书籍。我是对的还是这本书已经存在了? 最佳答案 FluentNHibernate是NHibernate的映射策略,它不足以证明一本书本身。映射之外的所有内容都与NHibernate完全相同(事实上,它是NHibernate)。你能做的最好的事情是研究现有的NHibernateMaterial(例如Cookbook建议的NicholasMurray),然后使用FluentNHibe