NHibernate:分组和计数

我有一个用户、图书和用户图书的发布表。像这样的用户手册表 |UserID | BookID | Status | 1 34 Read 1 35 Unread 2 34 Read 2 70 Read 2 32 Unread ................... 我的域类是User、Book和UserBook。在NHiberna

在NHibernate中,我如何映射一个对象以仅检索它的子对象,而在创建或更新时忽略它们?

如何将此对象映射为仅检索下面的集合,并在创建或更新对象到db时完全忽略它 <bag name="children" table="tb_parent_child" lazy="false"> <key column="parentID"/> <one-to-many class="Child"/> </bag> 谢谢为什么不将lazy设置为true?这基本上不就行了吗?也可以将cascade设置为“none”?将cascade属性设置

为什么';nhibernate是否有合适的会话管理器,如UoW?

作为nHibernate的新手,我发现会话的创建有点令人困惑 为什么nHibernate不提供类似(我相信)工作单元的功能 或者是否有构建的东西,UofW更像是一个附加组件/首选项?(上下文:带SQL server的ASP.NET MVC web应用程序) 注意:我是nHibernate的新手,对MS的工作方式很着迷。如果产品下载等通常需要附带的东西,我会很喜欢。会话是一种工作单元,也是一个身份图。您可以在其上创建自己的工作单元抽象。不同的应用程序需要不同类型的工作单元,不同的程序员也喜欢不同的

Nhibernate HQL到CriteriaQuery的转换

类的定义如下: class User { public int ID { get; set; } public string OpenID { get; set; } public IList<Tag> Tags { get; set; } } 类用户{ 公共int ID{get;set;} 公共字符串OpenID{get;set;} 公共IList标记{get;set;} } OpenID被设置为自然id,因此二级缓存可以识别这一点 我有一个HQL

在我的NHibernate/SQLite项目中,Commit非常慢

我刚刚开始对我的Fluent NHibernate/SQLite项目进行一些真实的性能测试,在提交数据库时遇到了一些严重的延迟。我说的认真,是指花20-30秒提交30K数据 随着数据库的增长,这种延迟似乎越来越严重。当SQLite DB文件为空时,提交几乎立即发生,但当它增长到10兆时,我看到了这些巨大的延迟 该数据库有16个表,平均每个表有10列 一个可能的问题是,我存储了十几个左右的IList成员,但它们通常只有200个元素长。但这是Fluent NHibernate automapping

nhibernate的api参考在哪里?

我可能会发疯,但我找不到任何nhibernate的api参考资料。我找到了很多手册、教程、电子书等,但没有api参考。我在nhibernate sourceforge页面上看到了chm文件,但它似乎在我的任何PC(不同的操作系统)上都不起作用 有人能给我指出正确的方向吗?有一本好书涵盖了很多内容,网站上有html文档(它也是一本书) (这本书将是曼宁-行动中的nHibernate-有点过时,但是一个良好的开端) 这是我刚刚找到的在线参考资料的链接: 它似乎不是官方的,但至少它看起来像一个API

NHibernate CreateCriteria和CreateQuery生成不同的sql?

我是NHibernate的新手,不明白为什么这两条语句生成不同的sql 第一个只获取客户端信息(信息和客户端是代理),这正是我想要的 return repository .CreateQuery("from ClientInformation ci where ci.Information.IsMandatory = true and ci.Client.Id = :clientId") .SetParameter("clientId", clie

Nhibernate 为每个ViewModel创建ISession的实例

我的问题是:我正在使用以下工具构建一个桌面应用程序: 卡利本 尼尼特 亚硝酸铵 我的所有视图模型和存储库都与Ninject关联。我的存储库在其构造函数中都需要ISession 我想介绍一下ViewModels:每个ViewModel都会打开一个新会话 是否可以将Ninject配置为在创建ViewModel时打开新会话,并在此视图模型使用的存储库中使用此会话 我查看了Ninject的InScope函数,以及NHibernate中的ICurrentSessionContext接口,但我不知道如何

NHibernate“;找不到路径的一部分“;问题

我试图在我的项目中使用NHibernate,我已经使用NGen生成了NHibernate类和xml文件。之后,我尝试测试我的应用程序,但当我运行到代码的第二行时 var configuration = new Configuration(); configuration.Configure(); 它显示错误消息,如下所示 找不到路径“D:\App\bin\Debug\hbm\MyFile.hbm.xml”的一部分 显然,此文件不存在,因为它位于D:\App\bin\Debug**\Data**

Nhibernate 未对多对一引用应用筛选器

我有一个奇怪的场景,其中我有一个表,它引用了一个视图,该视图包含用户特定的行。视图具有唯一的行ID,但从未用于引用该项。相反,唯一值是从客户端ID、用户ID和对象键的组合中派生的 public BarMap() { Table(DatabaseObject.UserBars); Id(x => x.Id, "Resource_Id"); Map(x => x.ClientId, "Client_Id");

在fluent nhibernate中映射一列两次

我们走吧。。。 我有一个表(很遗憾,我无法更改),其中的列如下: 日期 开始时间 结束时间 我有两个字段的数据类: startDateTime=日期+开始时间 endDateTime=日期+结束时间 Map(x => x.EndDateTime) .Columns.Clear() .Columns.Add("date", "endTime") .CustomType<MyCustomType&

NHIbernate中的联接表

我问了这个问题,但没有人回答 如何选择电话号码为777的所有人员。我做过这样的事,但不起作用 var tags = session.CreateCriteria(typeof(Person)) .CreateAlias("Phone", "p", JoinType.InnerJoin) .CreateAlias("PersonPhone", "pp", JoinType.InnerJoin) .Ad

NHibernate:分离标准嵌套多次

多次嵌套后,我无法使DetatchedCriteria正常工作,原因是DetatchedCriteria只能访问更高一层的别名实体 例如,以下操作不起作用: var secondNestedCriteria = DetachedCriteria.For<Baz>("baz") .SetProjection(Projections.Id()) .Add(Restrictions.EqProperty("baz.FooName", "foo.Name") // Doesn

NHIbernate:映射审核用户

在数据库中的每个对象上,我都有CreatedBy、CreatedOn、ModifiedOn和ModifiedBy的审计字段。CreatedBy和ModifiedBy映射到一个用户对象,该用户对象是我为映射到我的users表而创建的。我最初将UserId(主键)存储在这些字段中,所有映射都使用 但是,我想切换这些字段来存储用户名,但是我找不到如何从非主键字段加载持久用户实体。我研究过IUSERTYPE、ICompositeUserType、事件侦听器和其他一些随机的东西,但我似乎无法让任何东西完

NHibernate-帮助ICriteria

我正在尝试将以下SQL查询转换为NHibernate中的ICriteria SELECT DISTINCT m.typeId, t.typeName FROM Models m, Types t WHERE m.qualifier=? AND m.typeId IS NOT NULL AND m.typeId = t.typeId 它们都映射到NHibernate中名为Models和ModelType的类中。列表应返回ModelType类型的列表 谢谢有好消息也有坏消息。您可以创建将返回模型类

NHibernate命名空间

我需要在我的项目中有什么名称空间来执行命令; ISession.execute(obj)??您应该只需要NHibernate和您用于代理的任何东西,如NHibernate.ByteCode.Castle。我应该不会对这些有任何问题 另外请注意,如果您在同一个类中使用任何Fluent项目,则需要FluentNHibernate。@牙买加ISession是一个NHibernate项目。如果您引用了上述内容,那么使用ISession或具体对象应该没有问题。ISession是接口,Session是实现接

Nhibernate NHiberate验证器开始日期早于结束日期

使用Nhibernate验证器(使用S#harp Architecture/MVC3),我如何编写一个自定义属性,最好不是对象特定的(因为这是一个相当常见的要求),它强制执行PropertyA>=PropertyB(或者在更一般的情况下,两者都可能为null) 差不多 public DateTime? StartDate { get; set; } [GreaterThanOrEqual("StartDate")] public DateTime? EndDate { get; set; }

Nhibernate 查询私有引用的属性

我有一个类,它与父类是多对一的。我希望通过子对象公开父对象的属性,而不直接公开父对象。我还想查询并按这些属性排序 班级 映射 公共类组织映射:类映射 { 公共组织地图() { Map(x=>x.Name); Map(x=>x.0); } } 公共类ContactMap:ClassMap { 公共联系人地图() { 参考资料(透露成员(“组织”)) .Access.CamelCaseField(); } } 质疑 公共类示例 { 私人ISessionFactory(sessionFactory)

NHibernate空间官方源代码控制

有人知道nHibernate Spatial的官方源代码控制系统在哪里吗? 在GitHub中有一个,但源代码与nhforge.org不同,最后一个不支持OracleSpatial。GitHub的不可“编译”。您知道在哪里可以找到官方信息吗?SVN存储库位于: 已经有一段时间没有更新了…所以是Nctrib的一部分,很好。谢谢我将对此进行研究。它与GitHub中的问题相同,Oracle spatial不可编译:(真遗憾……不幸的是,这个项目最近没有太多进展。好吧,差不多一年过去了,但我添加了一篇关于

如何在nhibernate中全局设置超时

我定期收到以下异常 System.Data.SqlClient.SqlException:超时已过期。超时 操作完成前经过的时间或服务器已关闭 没有回应 为了增加超时时间,我在标准中添加了以下内容 .SetTimeout(180) 1) 有没有办法将其添加到我的nhibernate配置中,使180是默认时间 2) 增加超时的后果是什么?这会增加或减少死锁的可能性吗?command\u timeout-指定NHibernate生成的IDB命令的默认超时 取自表3.1。 广告2。连接超时无法帮助

使用Fluent-NHibernate进行模式版本控制

我已经试着阅读了之前的一些答案,但就我所见,不清楚这些答案是否适用于我的情况。大多数问题似乎都涉及web应用程序。我认为我最好陈述我的需求并从那里开始,而不是试图对针对不同情况的建议进行逆向工程。我基本上要问两个问题: (流利的)NHibernate支持什么,原则上允许我达到要求?如果可能的话,我更喜欢使用fluentapi 为了制定有效的解决方案,我需要自己写些什么 概括而言,要求如下: 我想做的是使用FNH为桌面应用程序持久化和重新水化模型,例如,桌面应用程序的使用模型与MS Offi

NHibernate TransactionService实现示例

检索域对象时,我不断收到以下消息: failed to lazily initialize a collection of role no session or session was closed 我知道这个问题与在我的域对象上延迟加载集合有关,我正在尝试解决这个问题,但是如果有人能给我指出正确的方向,那就太好了。问题是,我的会话对象上有一个using语句,我想去掉存储库类中的会话 Stefan Steinegger建议使用TransactionService,它在以下帖子中管理事务:

NHibernate:在映射中指定的复合键以外的其他键上加入集合

在遗留数据库中,我必须使用通过组合键关联的嵌套表。翻译成NHibernate,例如,我有一个FcoTransportation类,它有一个FcoConsignment类的子类集合。但是,在一种情况下,我希望仅基于复合键的一个组件加载集合,而忽略另一个组件 映射如下所示: <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-laz

我可以在NHibernate开几节课?

我正在编写一个桌面应用程序,使用NHibernate连接到数据库 我的模型有一个会话,该会话在初始化模型时打开,在释放模型时关闭。当我每个表单有一个模型时,这是可以的,因为打开的会话数与打开的窗口数相同-一个小数目 我现在正在制作一个表格,列出许多模型,因此如果表格列出50个模型,将有50个开放会话。我怀疑这可能是个问题 在NHibernate我可以有多少公开会议?我应该只有一小部分,还是可以有我需要的任意多的开放会话?这取决于您将会话开放多长时间以及如何处理它们。会话本身非常轻量级,不一定打开

Nhibernate强制多对一关系上的内连接

我在两个实体a和B之间映射了多对一关系。我将使用水果和颜色来模拟我的场景: 假设所有水果只有一种颜色。所以我在我的水果类中有一个颜色属性,在我的水果映射代码中我有: ManyToOne(f=>f.Color, mapper=>mapper.Column("ColorId")); 生成的SQL具有以下特性: Select f0_.Name, f0...From Fruit f0_ left outer join Color c0_ on f0_.ColorId = c0_.i

如何将PostGis几何柱映射为wkt和nHibernate,而不使用nHibernate spatial

我需要使用nHibernate作为wkt阅读postgis几何专栏。我知道我可以使用nHibernate Spatial,但在我的情况下,这不是一个选项 我看过这篇文章:wkt存储在另一列中,他使用触发器更新实际的几何体。但是,项目所有者不希望为此目的有一个额外的列 我也发现了这条线索:,但没有提供答案 我相信我需要写一个自定义类型,但我真的需要有人给我指出正确的方向。我之前没有使用过Postgresql/postgis Thnx 如果不需要额外的列,可以创建一个视图,该视图将使用函数从原始表中

Nhibernate 返回错误订单的hql订单

我有一个函数,它创建一个hql查询并动态附加一个ORDERBY子句,然后执行查询。查询返回正确的结果,但它们不符合order by设置的顺序 public List<Event> Search(string sortby) { string query = "from Event e and e.IsDeleted = 0 "; if (sortby != null && sortby != "") { var useDesc

NHibernate定义架构名称

我正在努力学习nhibernate。我了解如何创建表和实体映射。但我不能理解的是如何使用nHibernate创建一个新的模式 我搜索并发现,使用ExposeConfiguration可以创建一个模式,但我无法理解在哪里提供新的模式名称 有非常清晰的文档: 因此,基本上可以为每个类/表设置模式名称: public MyEntityMap() { ... Schema("mySchema"); } 默认设置可以如下所示: MsSqlConfiguration.MsSql2005

确定NHibernate瓶颈的最佳方法?

这是关于我之前问过的一个问题。除了查看NHibernate在调用数据库时生成的SQL之外,找到NHibernate和DB之间瓶颈的最佳方法是什么?特别是,当直接针对数据库运行查询时,返回速度非常快,但在单元测试和网页上运行代码时,返回速度非常慢(超过3-4倍)。我相对确信这与我映射表和主键的方式有关。我如何进一步挖掘,以了解我的慢区发生在哪里?还有其他可用的工具吗?我知道这是一个非常广泛的问题,但我还没有必要探讨这些问题。任何帮助都将不胜感激。我使用JProbe分析我的代码。它可以显示在代码中任

NHibernate:创建适用于表上所有查询的条件

使用Castle ActiveRecord/NHibernate:有没有一种方法可以对表上的所有查询强制使用ICriterion 例如,我的很多表都有一个“UserId”列。我可能希望确保始终为登录用户选择行。我可以很容易地创建ICriterion对象,但我不得不为不同的方法提供它:FindAll()、FindFirst()、FindLast()等等 有没有办法将所有查询上的WHERE子句强制到Castle ActiveRecord?最接近的方法是使用过滤器。请参见我终于找到了一个很好的解决方案

无双向关联的NHibernate一对多关系

我的理解正确吗?在NHibernate中,以下类和表设计是不可能的: public class Parent { public virtual Guid Id { get; set; } public virtual ISet<Child> Children { get; set; } ... } public class Child { public virtual Guid Id { get; set; } ... } table Parent

NHibernate会话工厂配置

配置Nhibernate会话工厂时,使用fluentnhibernate,可以使用AddFromAssembly、AddFromAssemblyOf或add添加映射文件。前两个扫描程序集以查找类映射。可能没有太大的区别,但是在减少sessionfactory创建时间方面,哪一个是最好的呢?可能是«添加»,因为我们明确指出了类,所以不需要进行程序集扫描。您应该分析应用程序,看看什么花费了最多的时间。Fluent NHibernate中的AddXXX方法扫描程序集以查找类映射,但即使在这之后,NHi

Nhibernate 在映射中放置where子句

我有两个对象:父对象和子对象列表。在父对象的fluent nhibernate映射中,我要加载子对象列表 但是我希望这是有条件的,子表中的一列称为“IsDeleted”,我只想返回“IsDeleted”为false的子表 是否可以设置映射来执行此操作?如果没有,是否可以只使用标准的nhibernate 谢谢是的,您可以在Fluent NHibernate中使用Where约束来映射此内容。比如: HasMany(x => x.Children).Where("IsDeleted = 0");

fluent nhibernate一对多映射

我正试图找出我认为使用fluent Nhibernate的简单一对多映射。我希望有人能给我指出正确的目录,以实现这一对多的关系 我有一个文章表和一个类别表 许多文章只能属于一个类别 现在,我的Categores表有4个类别,Articles有一篇文章与Category1关联 这是我的设置 using FluentNHibernate.Mapping; using System.Collections; using System.Collections.Generic; namespace Fl

NHibernate配置连接字符串信息

存储连接字符串信息的最佳方式是什么 我不希望只将db密码存储在NHib.config文件中。通常,如果您使用sql登录连接到sql server数据库,您会输入密码,除非您决定使用windows身份验证 <connectionStrings><add name="MyDbConn1" connectionString="Server=MyServer;Database=MyDb;Trusted_Connection=Yes;"/> <add

NHibernate对Count()和First()使用标准

我有一个关于标准方法的问题,一对多与数据库的关系,“一”是“帐户””,“多”是“站点””,当我使用CreateCriteria()时有些不对劲 如下所示:SessionFactory.OpenSession().CreateCriteria(typeof(Account)).List().Count() 在运行之前,我认为SQL应该是selectcount(*)fromtable,但SQL是selectid,siteurl…fromtable。这有什么不对?我怎样才能解决它 而First()方法

NHibernate中多接口继承类的映射

我有接口: public interface IHasList<T> { IList<T> Items { get; set; } } 公共接口IHasList { IList项{get;set;} } 我想使用一对多映射到列表来映射这样的类: public class Model : IHasList<A>, IHasList<B> { ... } 公共类模型:IHasList,IHasList { ... } 我能做这个

查询时出现NHibernate异常

我在执行最基本的查询时遇到一个映射异常。 这是我的域类: public class Project { public virtual string PK { get; set; } public virtual string Id { get; set; } public virtual string Name { get; set; } public virtual string Description { get; set; } } 以及映射类: publi

fluent nhibernate不支持异常newexpression

谁能帮我找出我做错了什么。我是nhibernate的新手,我发现很难真正适应它。我有一个疑问: var results2 = (from purchase in _session.Query<Purchase>() group purchase by new { purchase.symbol } into purchases select new Quote()

NHibernate-在一对一映射上使用WHERE子句

是否可以使用属性ref以外的约束来限制一对一映射?理想情况下,可以使用与类定义类似的内容,例如,可以在其中添加where=“Condition=Value” 谢谢您可以为此使用nhibernate过滤器:

nhibernate多对一

我有这个问题 using (var transaction = Session.BeginTransaction()) { var t = new Ticket(); t.Title = "TestTicket"; var ticketId = (Guid)Session.Save(t); var pe = new ProcessExec();

Nhibernate HQL针对空外键的不同行为

假设我有两张桌子: A在B中有一个外键 B有一个名为“Name”的列 如果外键不为null,我需要获取A中返回B名称的每一行的结果,如果外键为null,则返回null。我正在使用NHibernate,并希望用这种行为来扩充我的HQL查询 谢谢 这些表可以如下所示: A ------ | ID | ------ | 1 | | 2 | ------ B -------------------- | ID | A_id | Name | -------------------- | 1 |

FluentNHibernate-如何在没有任何标识字段的情况下进行映射

我用的是FluentNHibernate。有谁能告诉我如何从没有唯一字段的数据库中检索值。没有要映射的标识列 让我们说人类没有身份文件。当存在标识列时,Obj引用相同的ID,最后一个对象采用最终实例值。假设这里有数据库{column/value}={1,'abc'},{2,'xyz'},{3,'pqr'},现在在阅读时,假设它遇到第四个对象,如{2,'efg}……那么我的列表将有总共3个对象,其中4个是固定的,hase column=2的对象将引用实例{2,'efg'},因为它在加载列表时最后出

Nhibernate &引用;找不到数据库持久性";在新设置的站点上与Umbraco和Courier发生错误

我也将要发布我的答案,但我昨晚在谷歌上搜索时找不到,所以我认为这是值得在这里列出的,因为其他人在晚上9点的时候会发疯 我创建了一个已经存在于其他地方的站点的新实例(我需要制作一个快照以进行安全测试,同时继续进行错误修复)。为此,我做了以下工作: 已停止目标Web服务器 复制整个webroot,包括umbraco文件夹、空的App\u数据以及所有资产、宏、模板等。(为了做到这一点,我实际上制作了一个webroot的zipfile,并将其重新放在目标web服务器上,但更标准的版本也会有同样的效果。)

Nhibernate 无存储库的通知数据访问模式

我想直接从应用程序服务访问ISession(不使用repository()),但应用程序服务单元测试很难,Nhibernate数据访问代码增加了代码的复杂性(没有存储库模拟,我不想模拟存储库或类似sqllite的内存数据库进行测试) 有没有从服务层访问ISession的有效方法?我使用sessionHelper,它基本上持有ISessionFactory,然后有如下方法: public T WrapQueryInTransaction<T>(Func<ISession,

按子集合项列出的NHibernate筛选器集合

健康记录可能有症状,包括一些单词 我需要的是:通过给定的一组单词返回带有相应症状的健康记录 我有以下代码: public IEnumerable<HealthRecord> GetByWords(IEnumerable<Word> words) { var wordsIds = words.Select(w => w.Id).ToList(); Word word = null; HealthRecord hr = null; ISe

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