NHibernate:在运行时访问配置属性(Sql方言)

我希望在运行时检索配置文件中指定的“方言”和“connection.driver_class”属性的值 你知道怎么做吗 非常感谢,, Nicola当您构建配置对象并加载XML并最终构建SessionFactory时,请保留现有的配置对象引用 您可以使用配置引用的Properties对象,也可以执行类似dialent.getdialent(_Configuration.Properties)的操作。谢谢您的回答。 在该解决方案中,我不喜欢的一点是,我需要保留配置,并在需要方言知识的方法中传递配置

相关实体属性上的NHibernate AddOrder

我有一个搜索表和结果列表。表单允许用户搜索实体属性和相关实体属性 名称包含 电子邮件包含 公司名称 结果列表显示联系人属性和相关属性,在本例中为公司名称 名称|电话|电子邮件|公司 公司是一种关系,在这种情况下,关系是即时加载的。搜索端、过滤结果、分页等一切正常 我使用DetachedCriteria,我只能对联系人属性进行排序。(实际上不需要对电子邮件和电话号码进行分类)。我在整理相关财产的公司名称时遇到困难。我想知道是否有人能给我指出正确的方向。提前感谢您的帮助。嗯,我想这样的事情应该可以解

NHibernate和字符串主键

我们有一个使用字符串作为主键的遗留数据库。我希望在遗留数据库的基础上实现对象,以便更好地实现一些业务逻辑,并为用户提供更多功能 我在一些地方读到,在表上使用字符串作为主键是不好的。我想知道为什么会这样?是因为案件敏感性问题吗?角色集 。。。为什么这对NHibernate特别不利 。。。接下来。。。如果字符串确实生成了错误的主键,那么用int或guid等替换数据库中的主键是否值得?(我们只涉及25-30张桌子)好的,我来试试这个。我将给出几个简短的警告——我不是数据库方面的专家,我的经验是使用Hi

SchemaExport、NHibernate和删除外键

我正在构建映射,然后使用模式导出更新数据库。但是,如果我在映射中删除关联,因为它不再在映射中,当我运行SchemaExport时,它将不会删除已删除关联的外键。这意味着它随后无法删除与该外键关联的表。这进一步意味着它无法重新创建表,我得到一个“数据库中已经有一个名为Foo的对象”异常。有没有办法通过模式导出强制删除表?最干净的方法是执行SchemaExport。使用旧的nhibernate配置删除,然后使用新配置创建 或者,您可以删除并重新创建数据库本身,下面是一个在SQL Server Exp

使用NHibernate和Codesmith生成ORM

刚开始学习NHiberate。为每个数据库表编写适当的hbm.xml配置文件似乎相当乏味 问题是NHibernate能否读入表并自动检索关系、所需的配置文件以及数据库映射器类?似乎程序员最初还需要做很多基础工作。然后我遇到了Codesmith,它得到了NHiberate的模板?它填补了空白吗?您可以使用代码模板,但这仍然会给IMHO带来痛苦。最好的方法是使用。他们有一个新的自动映射功能,使用约定的配置。没有映射文件,它只是假设您使用相似的名称,并且可以定义如何将实体名称转换为表名称的规则。代码生

在运行时添加nHibernate映射?

背景: 我在尝试使用nHibernate时遇到映射失败。应用程序由几个程序集组成。其中一个程序集是有用例程的库,另一个是使用该库的应用程序代码。库程序集将自己添加到nHibernate配置中,但由于它不知道其他程序集,因此不会添加它们。我的xml映射文件位于应用程序集中。我认为它没有找到它,因为它没有在应用程序集中查找 问题: 是否可以映射到任意程序集中的类而不将其添加到配置中 如果没有,能否在运行时添加映射 谢谢 p、 美国。 我确实确保映射文件被标记为嵌入式资源 更新-2009年4月3日

NHibernate:使用条件对值列表进行查询筛选

我正在尝试使用CriteriaAPI按值列表进行筛选。我怀疑这是不可能的,我只是想确定一下 class Entity { int id { get; set; } IList<Guid> Guids { get; set; } } 对于CriteriaAPI,这似乎是不可能的 ICriteria query = session .CreateCriteria(typeof(Entity), "e") .Add(Subqueries.In("e.Guids", sub

Fluent NHibernate与城堡设施命名策略

我有一个流利的NHiberate,城堡设施已经建立并运行 但是,如何设置NamingStrategy?我尝试了配置对象,但没有成功。我的命名策略是否需要在我的Windsor容器中注册?据我所知,没有办法在NHibernate设施中配置命名策略。请告诉我这件事 作为一种解决方法,您可以继承并覆盖将应用NamingStrategy的GetConfiguration() 要使用刚刚创建的新的IConfigurationBuilder,请在创建时将其注入NHibernateFacility: conta

如何从NHibernate的操作中获取自动生成的SQL语句?

我遇到了一个棘手的问题。我必须将指定的数据库操作记录到数据库日志表中。它是一个自定义表,与任何系统数据库表都不相关。它采用SQL语句的形式,但我使用NHibernate作为数据访问方法 那么我该怎么做呢?确保记录所有命令的唯一方法是设置SQL跟踪,并让它将所有命令记录到SQL Server表中。虽然我必须亲自尝试,但您应该能够使用自定义拦截器来执行此操作。检查IInterceptor并从EmptyInterceptor继承。像这样的方法应该会奏效: public class LogSqlInte

使用NHibernate在两组表中保存相同的类结构

我有一个类似模拟班继承人的场景 顺序 订单线 产品 顾客 订单 这会创建一些表,如 顾客 产品 CustomerOrderNotes CustomerId,OrderId 订单客户ID 订单行订单ID,产品ID 我已经把它映射到了NHibernate,一切正常 所以现在我想创建这个对象的in-edit版本,并将其保存到数据库中 我正在使用asp.net,希望将编辑中的更改保存到单独的行中,然后仅在按下“发布”以将更改提交到活动行时进行保存。我计划从编辑数据复制到实时数据 使用相同的对象模型是否可

NHibernate当前版本

NHibernate的当前“生产就绪”版本是什么?我在hibernate网站上得到的答案与其他一些帖子的答案不一致。是2还是2.1??如果是2.1,我从哪里得到二进制文件 2.1 NHibernate的最新生产版本是2.1。然而,2.1中有一个很大的变化,这可能会阻止人们立即跳转。也许这就是为什么你会得到相互矛盾的答案 您始终可以从中获取最新版本 有关删除 做这件事的时候别忘了给自己拿一份 NHibernate的最新生产版本是2.1。然而,2.1中有一个很大的变化,这可能会阻止人们立即跳转。也

Nhibernate 将IList转换为IList<;t>;使用动态实例化

我尝试使用动态实例化将以下NHibernate查询转换为IList,而不是IList IList<AllName> allNames = (IList<AllName>)Session.CreateQuery( @"select new AllName( name.NameId, name.FirstName, origin.OriginId, origin.Description, name.Sex, name.Description, name.Sou

Nhibernate 如何将所有匹配行属性isDelete设置为False?

使用Hql或条件,如何更新多行并将属性设置为false 即SQL将是: 更新用户订单 设置isDeleted=0--(布尔值为false) 其中uID=234如果不以任何其他方式使用业务对象,我想在这种情况下我会绕过NHibernate。也就是说:不要使用HQL,而是发出本机SQL查询。(NHibernate允许您执行此操作;请检查ISession的CreateSQLQuery) 我为什么要这么做? 因为,当您使用HQL发出这样的查询时,我认为NH将从数据库中取出每个实体,更改其属性,然后更新其

复制Nhibernate 2.1中的子实体?

我正在将一个项目从NHibernate1.2迁移到NHibernate2.1,我遇到了一个奇怪的错误。NHibernate正在将子实体的副本加载到集合属性中。还有其他人遇到过这个问题吗?你能提出一个解决方案吗?谢谢你的帮助 下面是问题的细节:我的项目是一个简单的项目经理。感兴趣的三个实体是Project、Task和ProjectNote。项目有两个集合属性“任务”和“注释”,用于保存任务和项目注释对象。我的测试数据有几个项目。项目1有4个任务和2个注释。但当项目1加载时,它显示10个任务和10个

如何抑制nHibernate的日志消息

我在我的应用程序中使用log4Net,它也使用nHibernate。现在,我的事件记录器中充斥着我想要抑制的nHibernate消息 我已经试过了,但没用 <log4net> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> <param name="LogName" value="App Log" /> <param n

Nhibernate审计

我有一个关于审计的问题。大多数审计示例使用一个审计表来跟踪更改。但是,每个“常规”表需要一个审计表。换句话说,tblCustomer也有tblCustomer_历史记录。我不知道如何使用侦听器,在更新时也会填充历史记录表。有什么想法吗?我不想依赖SQL Server触发器。如果您不想构建自己的审计解决方案,也许您应该看看NHibernate Envers?

NHibernate+;远程处理=ReflectionPermission异常

在一台具有完全信任环境的机器(实际上这是我们的开发机器)中使用NHibernate进行远程处理时,我们正在处理一个问题 当我们尝试将以前从服务器检索到的对象作为参数发送时,会出现问题,该对象在其中一个属性(惰性属性)中包含NHibernate代理 由于我们在开发机器中,web应用程序的信任级别没有限制(设置为完全),另外,我们还将NHibernate和Castle的程序集配置为CAS中的完全信任(甚至认为这是不必要的,因为IIS中的远程处理应用程序具有完全信任级别) 有人知道是什么导致了这个异常

NHibernate,如何读取NamedQuery结果元数据?

我在nhibernate映射文件上定义了一个sql查询,它调用一个存储过程来选择一些记录 <sql-query name="sp_MYSP"> exec MYDBSP :param1, :param2, :param3 </sql-query> 为了得到结果,我使用“列表”方法 但通过这种方式,它返回一个没有任何元信息的对象列表…比如columname。我会像读取数据表一样读取结果,以获取特定属性的值…我该怎么做 所选记录不表示my domain moda

是否有描述NHibernate使用的所有log4net记录器的资源?

出于性能诊断的原因,我想大量定制我的NHibernate日志。是否有所有可用记录器的资源?更好的方法是提供一个资源,描述每个记录器在不同日志级别记录的内容。一个建议是检查日志本身;文件夹/命名空间层次结构应该让您大致了解可用的记录器。一种可能是为“NHibernate”设置记录器,并记录几个会话的所有消息。我这样做了,并且能够看到很多层次记录器(特别是配置和连接),但是“NHibernate.SQL”下的内容明显缺失。我想在那里的某个地方有一个奇怪的log4net层次结构配置

NHibernate审核和继承类的问题

我有一个Animal类,它实现了IDomainObject。还有另一个类,Cat,它继承自Animal。我正在为我的NHibernate映射使用每个子类的表继承策略,并将CreatedDate和LastModified属性映射到Animal表中的列和Cat表中的列 我还使用PreUpdate事件处理程序为LastModified赋值 更新Cat对象中的属性时,会向数据库发送两个更新:一个用于Animal,另一个用于Cat。但是,Animal的更新将获取新的LastModified值,而Cat的更

nhibernate实体是BL的一部分吗?

我正在寻找合适的n层模式,以适应我的新nhibernate项目。我对它很陌生。我目前有几个实体及其相应的映射类。我似乎不知道这些实体是否应该充当BL级类,或者仅仅是DAL中面向对象的一部分 有人能帮忙解释一下吗 谢谢。您的实体是BL层的一部分。它们应该反映商业意义。例如,如果您正在编写在线商店,您将拥有用户实体,它将拥有订单实体列表,等等 您可以查看NHibernate使用的不同示例和最佳实践,例如 他们都把实体放在业务层,而它们的映射在数据访问中。首先接受你的一些问题,伙计。我或多或少接受了5

流利的NHibernate和NHibernate 3.0

今天NHibernate 3正式上市,我想知道是否可以升级一个使用Fluent NHibernate的项目。我可以简单地将2.1 DLL换成3.0并让它工作吗或者还有比这更重要的吗 我知道在Linq语法的改变方面会有一些工作,但我不关心这一点,我只是想知道DLL对于Fluent是否可以互换 非常感谢, 科汉 补遗 流利的人现在已经自己做到了: 您需要将它们构建在一起。您可以等待NuGet更新,也可以自己构建。或者您可以将程序集重定向设置为DrLongnecer已经为NHibernate 3.0

在Spark View Engine ASP.NET MVC中构建菜单时出现NHibernate N+1问题

我有一个有1000个类别的网站。我正在构建一个菜单,列出根类别,悬停显示子类别,也许还有一个级别 在我看来,我有以下几点: <ul class="menu"> <li each="var category in categories"> ${Html.ActionLink(category.Name, "Index", "Category", new {id=category.Id}, new {@class="drop"})}

Nhibernate ASP.NET MVC中的自动映射更新操作

对于一些人来说,这可能是非常直截了当的,但是我有点困惑,找不到一个像样的例子。假设我正在使用视图模型,并且我的后期操作在该视图模型中执行。通常我会按照以下思路做一些事情: [HttpPost] public ActionResult Update(UserViewModel uvm) { User user = Mapper.Map<UserViewModel, User>(uvm); _repository.Update(us

使用NHibernate连接子查询

是否可以在Criteria或QueryOver(NHibernate 3.1)中执行以下查询 有一个类似的问题,但它很老,从来没有得到回答。也许通过NH团队最近的重大更新,这个问题可以得到解答! 谢谢我的50美分->您需要更改对象模型。这样,客户就包含了销售 然后,您的查询将如下所示,这将更加简洁,更加面向对象。虽然我不知道如何进行上面的查询,但它违背了使用ORM工具的目的 from Customer c inner join fetch c.Sales 如果对象模型中的Customer和S

具有左外部联接的NHibernate HQL查询

我想从两个不同的表中检索一些数据。它们被命名为“A”和“B”。 还有另一个表叫做“C” A和B都提到“C”,但“C”既没有提到A也没有提到B 我的SQL命令如下所示: select A.x, A.y, B.z from A LEFT OUTER JOIN C ON C.i = A.i LEFT OUTER JOIN B ON B.i = C.i 问题是:我在表A中有一些我需要的数据,在表B中有一些数据。 我需要从表A中检索所有数据,其中表A中的一个属性等于

NHibernate 3.1.0:选择1个子查询

如何在NHibernate 3.1.0中实现像“Select 1”这样的子查询 在早期版本中,我知道我们使用了, .SetProjection(投影常数(“1”) 在3.1.0中, .Select(1)不可能,因为Select(…)需要Func作为参数 谢谢。选择(参数IProjection projections)有一个重载,因此您可以编写。选择(projections.Constant(“1”)这是示例 Session.QueryOver<Person>() .Wh

为什么NHibernate的LINQ提供程序为GroupBy()生成无效的T-SQL?

我试图对每个制造商生产的产品数量进行简单的查询,但NHibernate并没有生成MS SQL Server认为有效的t-SQL 会话查询 .GroupByp=>p.制造商 .Selectgrp=>new{Mftr=grp.Key.Name,ProductCount=grp.Count} 托利斯特先生; 这看起来非常简单,但NHibernate生成的SQL语句没有包含所有必需的列名,因此在运行SQL Server 2008或SQL Server CE数据库时失败。如果我将相同的代码指向内存中的SQ

NHibernate填充属性,但属性保持为null

我正试图将fetchmode设置为渴望在对象图中有两层深度的属性 DetachedCriteria homeSupportServicesPlacementInvoiceQuery = DetachedCriteria.For<HomeSupportServicesPlacementInvoice>() .SetFetchMode("VendorService", FetchMode.Eager) .SetFetchMode("Vend

Nhibernate TPH与TPT与TPC和或映射器

我正在研究一个数据模型,它有一组共享一些公共字段的类型,比如Id、Name、Description。更具体地说: 文档类有一个属性列表。这些属性在我们的域中,类型如String、Integer、DateTime和更复杂的类型,如Address和String、Integer、Address等列表。现在,在我的头脑中,我将对属性类进行建模,以便我有一个抽象的基类AttributeBase,其中包含公共属性Id、Name、,描述,然后在相应的子类中具有更具体的属性。例如StringAttribute值

如何使用Fluent NHibernate和QueryOver查询复合主键?

我有一个基金列表,每个基金都有一个ID、ConfigID和一个CountryID。我需要根据这些ID为每个基金选择基金绩效 FundPerformance表的复合主键为ID,ConfigID和CountryID 到目前为止,我已经 perfs = _session.QueryOver<FundPerformance>() .Where(xx => xx.ConfigId == _configId) .Where(Restricti

NHibernate映射非常慢

我正在使用nhibernate从遗留oracle数据库创建一个不可变域对象的集合。一些使用CriteriaAPI的简单查找需要60秒以上。如果同一查找的后续查找速度非常快,通常小于300ms 100ms(以db为单位),其余由nhibernate进行,我没有启用2级缓存或查询缓存,所有查询都会转到我使用nhibernate prof检查的db。但是,如果我让应用程序空闲几分钟,然后再次运行查找,通常需要50-60秒 我使用过nhibernate profiler,在每种情况下,它都清楚地显示在数

Nhibernate数据对象已添加、删除、然后添加对象

我正在使用(流利的)nhibernate,我遇到了一个小问题。我的数据模型是让一个用户对象与另一个对象有一对多的链接(我称之为Obj1)。 Obj1的主键位于我的应用程序外部。虽然我可以将其更改为具有自己的主键,从而允许重复,但它会在以后引起更多问题 用户可以随时从其配置文件中添加和删除Obj1,并且在执行每个操作时立即调用数据层。问题是,如果用户添加一个Obj1,删除它,然后再次添加它,那么nhibernate会给我一个ununiqueObjectException 这是因为添加的第一个Obj

FluentNhibernate多对多和逆()

我定义了以下数据库表: public class Club() { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual IList<Member> Members { get; set; } } public class Member() { public virt

NHibernate一对一:为AccountDetail生成空id

在使用多对一唯一约束映射一对一关系时,我遇到了一个异常“为AccountDetail生成的null id” 这是我的SQL表: Account(Id, Name) AccountDetail(AccountId, Remark) public class Account { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual Accou

Nhibernate随机查询顺序

我正在尝试编写一个返回随机排序结果的查询。我找到了这篇文章,它给了我一些基本的线索。但我得到了以下例外: “Accomodations.DAL.Model.Generated.Accomodation”类型的变量“x”从范围“”引用,但未定义该变量 我的问题是: var query = session.QueryOver<Accomodation>() .OrderBy(x =>

Nhibernate 在蔚蓝的天空中

我尝试在Azure SQL中运行创建架构,但失败是因为我使用生成的HiLo,Azure SQL需要聚集索引,默认情况下HiLo表没有任何索引,以前有人在Azure中尝试过HiLo吗?有人能给我指出解决这个问题的正确方向吗 谢谢我个人没有尝试过使用它,但在过去,有人报告在使用SQL Azure的NHibernate语句时出现以下问题: Heaps can not be replicated tables. Please create a clustered index for the table.

NHibernate未映射具有ComposeId的继承属性

在我看来,这是一个bug,但在我将其提交给NHibernate bugtracker之前,我想确认我对该如何工作的理解 我的项目配置为使用显式模型映射,并在每次运行时恢复数据库。我有一个定义属性的简单基类。子类希望将该属性与其自己的属性组合,以生成复合主键,如下所示: public class BaseClass { public int InheritedId { get; set; } } public class Subclass : BaseClass { public

NHibernate防止级联删除

假设我有一门课。我还有一个关于Foo的视图,名为Foo\u Foo,它列出了Foo之间的多对多关联。我使用cascade=“none”将此关联映射为每个Foo上的一个简单不可变集: 然而,当我试图删除一个Foo时,NHibernate试图删除Foo.association,但没有成功 如何防止NHibernate尝试删除与视图的关联?该集合属于Foo。您无法共享该集合,因此无需将其保留在数据库中。级联用于告知NH是否也应删除引用的Foos 为什么要将Foo\u Foo记录保存在数据库中?如果

Nhibernate 如何删除没有类和映射的表?

我使用的是ASP.NET,它使用我通过Nhibernate创建的用户表。SimpleMembership自动创建成员资格和角色表(不含Nhibernate),该表具有用户表的外键(即:成员资格和角色具有属于我的用户表的外键)。我没有这些成员资格和角色表的类或映射 在我的nunit测试项目中,我正在设置中创建这些表,但在使用以下实现删除所有表时遇到问题。 var se=新的SchemaExport(_配置);se.Drop(真,真) Drop()无法删除用户表,因为成员资格表和角色表依赖于用户表。

如何使用log4net在不同的日志文件中记录quartz和nhibernate

我在我的应用程序中使用nhibernate和qurtz,我希望log4net将日志写入不同的文件。nhibernate记录到“nhibernate.log”,qurtz记录到“quartz.log” 我需要如何配置log4net配置文件才能得到这个结果 谢谢,Avi。您可以配置nhibernate记录器必须使用的附件: <logger name="NHibernate"> <level value="ERROR" /> <appender-ref ref

如何";设置“不计数”;对于Nhibernate生成的select语句

我们在数据库服务器上默认设置为“setnocountoff”。我们在存储过程中使用“setnocounton”。 正如dba所报告的,所有nhibernate生成的select语句都使用“SET NOCOUNT OFF”。执行查询需要很长时间。 我们正在努力提高性能。我想不出为特定的nhibernate会话或查询设置“set NOCOUNT ON”的方法。有人能对此有什么看法吗 关于我无法在nhibernate中为您提供选项来设置nocount off,但是我知道nhibernate取决于检查查

Nhibernate 通过左外连接进行大型一对多选择查询优化

FNH和NH的新成员 我想优化一个查询,以实现一对一的映射。实际上,我只想检索其中一个,其中Segment=0。PlantID、AreaID、CellID、DeviceID、StartDateTime构成数据的复合主键。将段添加到DataMore1和DataMore2的复合键 一个事件最多可以记录400个数据点…取决于他们选择的选项。 因此,我们选择将数据存储在单独的表中,以便在x天或x个月后清除不需要的数据 目标是通过FluentNHibernate做类似的事情 SELECT D

NHibernate如何跟踪分离的对象?

我们可以使用Update()将分离对象的状态遍历到持久状态 或者SaveorUpdate()等。这意味着nHibernate以某种方式跟踪分离的对象。我最初认为它可能会将分离的对象保存在内存中。但当我看到该语句时,我感到困惑: 处理完每个对象后,可以立即逐出() (在遍历查询结果时),从而阻止内存 耗尽。Ref:NHibernate正在运行 前提是:execute()用于从持久对象遍历到分离对象 在上面的语句中:“从而防止内存耗尽。”给出了一个似乎 分离的对象不会在内存中维护。然后在哪里?是,退

在请求使用Ninject管理会话期间发生异常时,如何回滚nHibernate事务?

我用nHibernate表示ORM,用Ninject表示IoC。 我根据一些自定义范围创建nHibernate会话(您可以假设它是根据请求创建的)。 我在激活时开始事务处理。 我在激活时提交事务 问题是,如果在请求期间发生异常,我希望回滚事务,而不是提交它。你知道如何检测(以一种干净的方式,最有可能使用Ninject上下文)发生了异常吗 注意:我不关心提交时可能发生的异常,我可以在下面的代码和角色中轻松捕获这些异常 protected void BindWithSessionWrapper<

Nhibernate 如何映射列(如果存在),否则为空

我试图将一个属性映射到一个公式,以便在列if存在时选择值,否则为默认值 我尝试了以下方法 mapper.Mapx=>x.GroupId.Formulaselect case when exists select*from INFORMATION_SCHEMA.COLUMNS SYS\u COLS\u TBL其中SYS\u COLS\u TBL.TABLE\u NAME='Azure'和SYS\u COLS\u TBL.COLUMN\u NAME='GroupId',然后此\u.GroupId e

上一页   1   2   3   4    5   6  ... 下一页 最后一页 共 183 页