我希望在运行时检索配置文件中指定的“方言”和“connection.driver_class”属性的值
你知道怎么做吗
非常感谢,,
Nicola当您构建配置对象并加载XML并最终构建SessionFactory时,请保留现有的配置对象引用
您可以使用配置引用的Properties对象,也可以执行类似dialent.getdialent(_Configuration.Properties)的操作。谢谢您的回答。
在该解决方案中,我不喜欢的一点是,我需要保留配置,并在需要方言知识的方法中传递配置
我有一个搜索表和结果列表。表单允许用户搜索实体属性和相关实体属性
名称包含
电子邮件包含
公司名称
结果列表显示联系人属性和相关属性,在本例中为公司名称
名称|电话|电子邮件|公司
公司是一种关系,在这种情况下,关系是即时加载的。搜索端、过滤结果、分页等一切正常
我使用DetachedCriteria,我只能对联系人属性进行排序。(实际上不需要对电子邮件和电话号码进行分类)。我在整理相关财产的公司名称时遇到困难。我想知道是否有人能给我指出正确的方向。提前感谢您的帮助。嗯,我想这样的事情应该可以解
我们有一个使用字符串作为主键的遗留数据库。我希望在遗留数据库的基础上实现对象,以便更好地实现一些业务逻辑,并为用户提供更多功能
我在一些地方读到,在表上使用字符串作为主键是不好的。我想知道为什么会这样?是因为案件敏感性问题吗?角色集
。。。为什么这对NHibernate特别不利
。。。接下来。。。如果字符串确实生成了错误的主键,那么用int或guid等替换数据库中的主键是否值得?(我们只涉及25-30张桌子)好的,我来试试这个。我将给出几个简短的警告——我不是数据库方面的专家,我的经验是使用Hi
我正在构建映射,然后使用模式导出更新数据库。但是,如果我在映射中删除关联,因为它不再在映射中,当我运行SchemaExport时,它将不会删除已删除关联的外键。这意味着它随后无法删除与该外键关联的表。这进一步意味着它无法重新创建表,我得到一个“数据库中已经有一个名为Foo的对象”异常。有没有办法通过模式导出强制删除表?最干净的方法是执行SchemaExport。使用旧的nhibernate配置删除,然后使用新配置创建
或者,您可以删除并重新创建数据库本身,下面是一个在SQL Server Exp
刚开始学习NHiberate。为每个数据库表编写适当的hbm.xml配置文件似乎相当乏味
问题是NHibernate能否读入表并自动检索关系、所需的配置文件以及数据库映射器类?似乎程序员最初还需要做很多基础工作。然后我遇到了Codesmith,它得到了NHiberate的模板?它填补了空白吗?您可以使用代码模板,但这仍然会给IMHO带来痛苦。最好的方法是使用。他们有一个新的自动映射功能,使用约定的配置。没有映射文件,它只是假设您使用相似的名称,并且可以定义如何将实体名称转换为表名称的规则。代码生
背景:
我在尝试使用nHibernate时遇到映射失败。应用程序由几个程序集组成。其中一个程序集是有用例程的库,另一个是使用该库的应用程序代码。库程序集将自己添加到nHibernate配置中,但由于它不知道其他程序集,因此不会添加它们。我的xml映射文件位于应用程序集中。我认为它没有找到它,因为它没有在应用程序集中查找
问题:
是否可以映射到任意程序集中的类而不将其添加到配置中
如果没有,能否在运行时添加映射
谢谢
p、 美国。
我确实确保映射文件被标记为嵌入式资源
更新-2009年4月3日
我正在尝试使用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
我有一个流利的NHiberate,城堡设施已经建立并运行
但是,如何设置NamingStrategy?我尝试了配置对象,但没有成功。我的命名策略是否需要在我的Windsor容器中注册?据我所知,没有办法在NHibernate设施中配置命名策略。请告诉我这件事
作为一种解决方法,您可以继承并覆盖将应用NamingStrategy的GetConfiguration()
要使用刚刚创建的新的IConfigurationBuilder,请在创建时将其注入NHibernateFacility:
conta
我遇到了一个棘手的问题。我必须将指定的数据库操作记录到数据库日志表中。它是一个自定义表,与任何系统数据库表都不相关。它采用SQL语句的形式,但我使用NHibernate作为数据访问方法
那么我该怎么做呢?确保记录所有命令的唯一方法是设置SQL跟踪,并让它将所有命令记录到SQL Server表中。虽然我必须亲自尝试,但您应该能够使用自定义拦截器来执行此操作。检查IInterceptor并从EmptyInterceptor继承。像这样的方法应该会奏效:
public class LogSqlInte
我有一个类似模拟班继承人的场景
顺序
订单线
产品
顾客
订单
这会创建一些表,如
顾客
产品
CustomerOrderNotes CustomerId,OrderId
订单客户ID
订单行订单ID,产品ID
我已经把它映射到了NHibernate,一切正常
所以现在我想创建这个对象的in-edit版本,并将其保存到数据库中
我正在使用asp.net,希望将编辑中的更改保存到单独的行中,然后仅在按下“发布”以将更改提交到活动行时进行保存。我计划从编辑数据复制到实时数据
使用相同的对象模型是否可
NHibernate的当前“生产就绪”版本是什么?我在hibernate网站上得到的答案与其他一些帖子的答案不一致。是2还是2.1??如果是2.1,我从哪里得到二进制文件
2.1
NHibernate的最新生产版本是2.1。然而,2.1中有一个很大的变化,这可能会阻止人们立即跳转。也许这就是为什么你会得到相互矛盾的答案
您始终可以从中获取最新版本
有关删除
做这件事的时候别忘了给自己拿一份
NHibernate的最新生产版本是2.1。然而,2.1中有一个很大的变化,这可能会阻止人们立即跳转。也
我尝试使用动态实例化将以下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
使用Hql或条件,如何更新多行并将属性设置为false
即SQL将是:
更新用户订单
设置isDeleted=0--(布尔值为false)
其中uID=234如果不以任何其他方式使用业务对象,我想在这种情况下我会绕过NHibernate。也就是说:不要使用HQL,而是发出本机SQL查询。(NHibernate允许您执行此操作;请检查ISession的CreateSQLQuery)
我为什么要这么做?
因为,当您使用HQL发出这样的查询时,我认为NH将从数据库中取出每个实体,更改其属性,然后更新其
我正在将一个项目从NHibernate1.2迁移到NHibernate2.1,我遇到了一个奇怪的错误。NHibernate正在将子实体的副本加载到集合属性中。还有其他人遇到过这个问题吗?你能提出一个解决方案吗?谢谢你的帮助
下面是问题的细节:我的项目是一个简单的项目经理。感兴趣的三个实体是Project、Task和ProjectNote。项目有两个集合属性“任务”和“注释”,用于保存任务和项目注释对象。我的测试数据有几个项目。项目1有4个任务和2个注释。但当项目1加载时,它显示10个任务和10个
我在我的应用程序中使用log4Net,它也使用nHibernate。现在,我的事件记录器中充斥着我想要抑制的nHibernate消息
我已经试过了,但没用
<log4net>
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<param name="LogName" value="App Log" />
<param n
我有一个关于审计的问题。大多数审计示例使用一个审计表来跟踪更改。但是,每个“常规”表需要一个审计表。换句话说,tblCustomer也有tblCustomer_历史记录。我不知道如何使用侦听器,在更新时也会填充历史记录表。有什么想法吗?我不想依赖SQL Server触发器。如果您不想构建自己的审计解决方案,也许您应该看看NHibernate Envers?
我使用以下方法:
public interface IRepository<T>
{
void Add(T entity);
}
public class Repository<T>
{
private readonly ISession session;
public Repository(ISession session)
{
this.session = session;
}
public void Add(T entity)
标签: Nhibernate
remotingcastle-dynamicproxysystem.securityreflectionpermission
在一台具有完全信任环境的机器(实际上这是我们的开发机器)中使用NHibernate进行远程处理时,我们正在处理一个问题
当我们尝试将以前从服务器检索到的对象作为参数发送时,会出现问题,该对象在其中一个属性(惰性属性)中包含NHibernate代理
由于我们在开发机器中,web应用程序的信任级别没有限制(设置为完全),另外,我们还将NHibernate和Castle的程序集配置为CAS中的完全信任(甚至认为这是不必要的,因为IIS中的远程处理应用程序具有完全信任级别)
有人知道是什么导致了这个异常
我知道NHibernate是否有新的.net 4 ISet集合的新用途?还没有。计划在未来发布
我在nhibernate映射文件上定义了一个sql查询,它调用一个存储过程来选择一些记录
<sql-query name="sp_MYSP">
exec MYDBSP :param1, :param2, :param3
</sql-query>
为了得到结果,我使用“列表”方法
但通过这种方式,它返回一个没有任何元信息的对象列表…比如columname。我会像读取数据表一样读取结果,以获取特定属性的值…我该怎么做
所选记录不表示my domain moda
出于性能诊断的原因,我想大量定制我的NHibernate日志。是否有所有可用记录器的资源?更好的方法是提供一个资源,描述每个记录器在不同日志级别记录的内容。一个建议是检查日志本身;文件夹/命名空间层次结构应该让您大致了解可用的记录器。一种可能是为“NHibernate”设置记录器,并记录几个会话的所有消息。我这样做了,并且能够看到很多层次记录器(特别是配置和连接),但是“NHibernate.SQL”下的内容明显缺失。我想在那里的某个地方有一个奇怪的log4net层次结构配置
我有一个Animal类,它实现了IDomainObject。还有另一个类,Cat,它继承自Animal。我正在为我的NHibernate映射使用每个子类的表继承策略,并将CreatedDate和LastModified属性映射到Animal表中的列和Cat表中的列
我还使用PreUpdate事件处理程序为LastModified赋值
更新Cat对象中的属性时,会向数据库发送两个更新:一个用于Animal,另一个用于Cat。但是,Animal的更新将获取新的LastModified值,而Cat的更
我正在寻找合适的n层模式,以适应我的新nhibernate项目。我对它很陌生。我目前有几个实体及其相应的映射类。我似乎不知道这些实体是否应该充当BL级类,或者仅仅是DAL中面向对象的一部分
有人能帮忙解释一下吗
谢谢。您的实体是BL层的一部分。它们应该反映商业意义。例如,如果您正在编写在线商店,您将拥有用户实体,它将拥有订单实体列表,等等
您可以查看NHibernate使用的不同示例和最佳实践,例如
他们都把实体放在业务层,而它们的映射在数据访问中。首先接受你的一些问题,伙计。我或多或少接受了5
今天NHibernate 3正式上市,我想知道是否可以升级一个使用Fluent NHibernate的项目。我可以简单地将2.1 DLL换成3.0并让它工作吗或者还有比这更重要的吗
我知道在Linq语法的改变方面会有一些工作,但我不关心这一点,我只是想知道DLL对于Fluent是否可以互换
非常感谢,
科汉
补遗
流利的人现在已经自己做到了:
您需要将它们构建在一起。您可以等待NuGet更新,也可以自己构建。或者您可以将程序集重定向设置为DrLongnecer已经为NHibernate 3.0
我有一个有1000个类别的网站。我正在构建一个菜单,列出根类别,悬停显示子类别,也许还有一个级别
在我看来,我有以下几点:
<ul class="menu">
<li each="var category in categories">
${Html.ActionLink(category.Name, "Index", "Category", new {id=category.Id}, new {@class="drop"})}
对于一些人来说,这可能是非常直截了当的,但是我有点困惑,找不到一个像样的例子。假设我正在使用视图模型,并且我的后期操作在该视图模型中执行。通常我会按照以下思路做一些事情:
[HttpPost]
public ActionResult Update(UserViewModel uvm)
{
User user = Mapper.Map<UserViewModel, User>(uvm);
_repository.Update(us
是否可以在Criteria或QueryOver(NHibernate 3.1)中执行以下查询
有一个类似的问题,但它很老,从来没有得到回答。也许通过NH团队最近的重大更新,这个问题可以得到解答!
谢谢我的50美分->您需要更改对象模型。这样,客户就包含了销售
然后,您的查询将如下所示,这将更加简洁,更加面向对象。虽然我不知道如何进行上面的查询,但它违背了使用ORM工具的目的
from Customer c
inner join fetch c.Sales
如果对象模型中的Customer和S
我想从两个不同的表中检索一些数据。它们被命名为“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中实现像“Select 1”这样的子查询
在早期版本中,我知道我们使用了,
.SetProjection(投影常数(“1”)
在3.1.0中,
.Select(1)不可能,因为Select(…)需要Func作为参数
谢谢。选择(参数IProjection projections)有一个重载,因此您可以编写。选择(projections.Constant(“1”)这是示例
Session.QueryOver<Person>()
.Wh
我试图对每个制造商生产的产品数量进行简单的查询,但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
我正试图将fetchmode设置为渴望在对象图中有两层深度的属性
DetachedCriteria homeSupportServicesPlacementInvoiceQuery = DetachedCriteria.For<HomeSupportServicesPlacementInvoice>()
.SetFetchMode("VendorService", FetchMode.Eager)
.SetFetchMode("Vend
标签: Nhibernate
entity-framework-4.1data-modelingtable-per-hierarchytable-per-type
我正在研究一个数据模型,它有一组共享一些公共字段的类型,比如Id、Name、Description。更具体地说:
文档类有一个属性列表。这些属性在我们的域中,类型如String、Integer、DateTime和更复杂的类型,如Address和String、Integer、Address等列表。现在,在我的头脑中,我将对属性类进行建模,以便我有一个抽象的基类AttributeBase,其中包含公共属性Id、Name、,描述,然后在相应的子类中具有更具体的属性。例如StringAttribute值
我有一个基金列表,每个基金都有一个ID、ConfigID和一个CountryID。我需要根据这些ID为每个基金选择基金绩效
FundPerformance表的复合主键为ID,ConfigID和CountryID
到目前为止,我已经
perfs = _session.QueryOver<FundPerformance>()
.Where(xx => xx.ConfigId == _configId)
.Where(Restricti
我正在使用nhibernate从遗留oracle数据库创建一个不可变域对象的集合。一些使用CriteriaAPI的简单查找需要60秒以上。如果同一查找的后续查找速度非常快,通常小于300ms 100ms(以db为单位),其余由nhibernate进行,我没有启用2级缓存或查询缓存,所有查询都会转到我使用nhibernate prof检查的db。但是,如果我让应用程序空闲几分钟,然后再次运行查找,通常需要50-60秒
我使用过nhibernate profiler,在每种情况下,它都清楚地显示在数
我正在使用(流利的)nhibernate,我遇到了一个小问题。我的数据模型是让一个用户对象与另一个对象有一对多的链接(我称之为Obj1)。
Obj1的主键位于我的应用程序外部。虽然我可以将其更改为具有自己的主键,从而允许重复,但它会在以后引起更多问题
用户可以随时从其配置文件中添加和删除Obj1,并且在执行每个操作时立即调用数据层。问题是,如果用户添加一个Obj1,删除它,然后再次添加它,那么nhibernate会给我一个ununiqueObjectException
这是因为添加的第一个Obj
我定义了以下数据库表:
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
在使用多对一唯一约束映射一对一关系时,我遇到了一个异常“为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
我正在尝试编写一个返回随机排序结果的查询。我找到了这篇文章,它给了我一些基本的线索。但我得到了以下例外:
“Accomodations.DAL.Model.Generated.Accomodation”类型的变量“x”从范围“”引用,但未定义该变量
我的问题是:
var query = session.QueryOver<Accomodation>()
.OrderBy(x =>
我尝试在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.
在我看来,这是一个bug,但在我将其提交给NHibernate bugtracker之前,我想确认我对该如何工作的理解
我的项目配置为使用显式模型映射,并在每次运行时恢复数据库。我有一个定义属性的简单基类。子类希望将该属性与其自己的属性组合,以生成复合主键,如下所示:
public class BaseClass
{
public int InheritedId { get; set; }
}
public class Subclass : BaseClass
{
public
假设我有一门课。我还有一个关于Foo的视图,名为Foo\u Foo,它列出了Foo之间的多对多关联。我使用cascade=“none”将此关联映射为每个Foo上的一个简单不可变集:
然而,当我试图删除一个Foo时,NHibernate试图删除Foo.association,但没有成功
如何防止NHibernate尝试删除与视图的关联?该集合属于Foo。您无法共享该集合,因此无需将其保留在数据库中。级联用于告知NH是否也应删除引用的Foos
为什么要将Foo\u Foo记录保存在数据库中?如果
我使用的是ASP.NET,它使用我通过Nhibernate创建的用户表。SimpleMembership自动创建成员资格和角色表(不含Nhibernate),该表具有用户表的外键(即:成员资格和角色具有属于我的用户表的外键)。我没有这些成员资格和角色表的类或映射
在我的nunit测试项目中,我正在设置中创建这些表,但在使用以下实现删除所有表时遇到问题。
var se=新的SchemaExport(_配置);se.Drop(真,真)
Drop()无法删除用户表,因为成员资格表和角色表依赖于用户表。
我在我的应用程序中使用nhibernate和qurtz,我希望log4net将日志写入不同的文件。nhibernate记录到“nhibernate.log”,qurtz记录到“quartz.log”
我需要如何配置log4net配置文件才能得到这个结果
谢谢,Avi。您可以配置nhibernate记录器必须使用的附件:
<logger name="NHibernate">
<level value="ERROR" />
<appender-ref ref
我们在数据库服务器上默认设置为“setnocountoff”。我们在存储过程中使用“setnocounton”。
正如dba所报告的,所有nhibernate生成的select语句都使用“SET NOCOUNT OFF”。执行查询需要很长时间。
我们正在努力提高性能。我想不出为特定的nhibernate会话或查询设置“set NOCOUNT ON”的方法。有人能对此有什么看法吗
关于我无法在nhibernate中为您提供选项来设置nocount off,但是我知道nhibernate取决于检查查
FNH和NH的新成员
我想优化一个查询,以实现一对一的映射。实际上,我只想检索其中一个,其中Segment=0。PlantID、AreaID、CellID、DeviceID、StartDateTime构成数据的复合主键。将段添加到DataMore1和DataMore2的复合键
一个事件最多可以记录400个数据点…取决于他们选择的选项。
因此,我们选择将数据存储在单独的表中,以便在x天或x个月后清除不需要的数据
目标是通过FluentNHibernate做类似的事情
SELECT D
我使用Nhibernate创建了控制台应用程序。
我创建了hibernate.cfg.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"
assembly="NHibernateDemo"
namespace=
我们可以使用Update()将分离对象的状态遍历到持久状态
或者SaveorUpdate()等。这意味着nHibernate以某种方式跟踪分离的对象。我最初认为它可能会将分离的对象保存在内存中。但当我看到该语句时,我感到困惑:
处理完每个对象后,可以立即逐出()
(在遍历查询结果时),从而阻止内存
耗尽。Ref:NHibernate正在运行
前提是:execute()用于从持久对象遍历到分离对象
在上面的语句中:“从而防止内存耗尽。”给出了一个似乎
分离的对象不会在内存中维护。然后在哪里?是,退
标签: Nhibernate
nhibernate-mappingmapping-by-codediscriminatortable-per-subclass
我拥有以下实体:
public abstract class User : IIdentity
{
private readonly UserType _userType;
public virtual int EntitySK { get; set; }
public virtual int TenantSK { get; set; }
public abstract string Name { get; set; }
public virtual P
我用nHibernate表示ORM,用Ninject表示IoC。
我根据一些自定义范围创建nHibernate会话(您可以假设它是根据请求创建的)。
我在激活时开始事务处理。
我在激活时提交事务
问题是,如果在请求期间发生异常,我希望回滚事务,而不是提交它。你知道如何检测(以一种干净的方式,最有可能使用Ninject上下文)发生了异常吗
注意:我不关心提交时可能发生的异常,我可以在下面的代码和角色中轻松捕获这些异常
protected void BindWithSessionWrapper<
我试图将一个属性映射到一个公式,以便在列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 页