问题标签 [nhibernate-3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
853 浏览

c# - NHibernate - 级联删除不起作用

我将 NHibernate 3.2 与 MS SQL Server 2008 R2 一起使用

我有休闲映射

这个有一个对 LocalizedProperty 的引用:

我的问题是,当我删除 CommunicationType 的实体时,NHibernate 正在执行 LocalizedProperty 的休闲更新语句

而不是删除语句。

有人看到了吗,怎么了?

0 投票
2 回答
679 浏览

c# - NHibernate,映射一个集合,其中键可以是两个不同的列

有一个实体A

此外,还有一个实体BA有两个关联。

A有一个集合B

如果关联的 A之一是已加载A的父 级,则此集合必须加载任何B。

问题是 A 上的集合映射必须根据检查两个A关联之一是否是父关联来过滤子项。

我怎样才能做到这一点?

注意:顺序无关紧要,因此您可以使用bag建议一些映射。

注 2:请建议如何使用 XML 映射来实现,我不会在代码中这样做。

更新:真实场景:

这都是关于友谊的实施。我想在实体 UserProfile 中映射友谊的集合。Friendship 有两个代表关系的关联:OneUser、OtherUser。如果我想为我获取所有朋友,我需要检查这两个属性,因为如果两个属性之一是我自己,一个是我的朋友。

0 投票
1 回答
1155 浏览

linq-to-nhibernate - 在 Linq-to-Nhibernate 中,是否有人设法在 where 子句中使用 .Contains 并在同一查询中使用 NHibernate.Linq.ToFuture() ?(NH 3.x)

每当我尝试在一个查询中使用 .Contains 和 ToFuture() 方法时,我总是得到一个“System.Collections.Generic.KeyNotFoundException”,上面写着“字典中不存在给定的键”。

想象一下 DBObject 包含一堆属性,其中一个是整数“ID”

任何人都可以重现这个吗?有没有人知道除了 contains() 之外的另一种方法来使 Linq-to-Nhibernate 使用 SQL IN 子句作为我的测试列表中的整数,同时还使用 ToFuture()?

堆栈跟踪:

在 System.Collections.Generic.Dictionary`2.get_Item(TKey key) 在 NHibernate.Param.NamedParameterSpecification.SetEffectiveType(QueryParameters queryParameters) 在 d:\CSharp\NH\NH\nhibernate\src\NHibernate\Param\NamedParameterSpecification.cs: d:\CSharp\NH\NH\nhibernate\src\NHibernate\Param\ParametersBackTrackExtensions.cs 中 NHibernate.Param.ParametersBackTrackExtensions.ResetEffectiveExpectedType(IEnumerable`1 parameterSpecs, QueryParameters queryParameters) 的第 70 行:NHibernate.Hql.Ast 的第 48 行。 ANTLR.Loader.QueryLoader.ResetEffectiveExpectedType(IEnumerable`1 parameterSpecs, QueryParameters queryParameters) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Hql\Ast\ANTLR\Loader\QueryLoader.cs: NHibernate.Loader 的第 428 行.Loader.CreateSqlCommand(QueryParameters queryParameters, ISessionImplementor session) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Loader.cs: d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\MultiQueryImpl 中 NHibernate.Impl.MultiQueryImpl.AggregateQueriesInformation() 的第 1649 行.cs:NHibernate.Impl.MultiQueryImpl.get_Parameters() 中的 d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\MultiQueryImpl.cs:第 641 行:NHibernate.Impl.MultiQueryImpl.CreateCombinedQueryParameters() 中的第 774 行d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\MultiQueryImpl.cs: d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl 中 NHibernate.Impl.MultiQueryImpl.List() 的第 754 行\MultiQueryImpl.cs:NHibernate.Impl.FutureQueryBatch.GetResultsFrom(IMultiQuery multiApproach) 在 d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\FutureQueryBatch.cs 的第 400 行:NHibernate.Impl.FutureBatch 的第 24 行` 2.GetResults() 在 d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\FutureBatch.cs:第 73 行在 NHibernate.Impl.FutureBatch`2.get_Results() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl \FutureBatch.cs:NHibernate.Impl.FutureBatch 的第 29 行`2.GetCurrentResult[TResult](Int32 currentIndex) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\FutureBatch.cs:NHibernate 的第 79 行.Impl.FutureBatch`2.c__DisplayClass4`1.b__3() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\FutureBatch.cs: NHibernate.Impl.DelayedEnumerator`1.d__0.MoveNext 的第 63 行() 在 d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\DelayedEnumerator.cs:System.Collections.Generic.List`1..ctor(IEnumerable`1 集合) 中 System.Linq 的第 26 行。 C 中 TestProject1.UnitTest1.TestMethod1() 处的 Enumerable.ToList[TSource](IEnumerable`1 source):\checkout\Library Projects\BaseSystemCore\TestProject1\UnitTest1.cs:第 94 行
0 投票
1 回答
190 浏览

c# - 我将如何使用 Linq-To-Nhibernate (NH3.2) 让数据库在没有记录本身的情况下向我返回查询的记录数?

我有一堆查询要运行,如果它们中的任何一个甚至返回一个结果,我都会将布尔变量切换为 true。如果它们都没有返回任何结果,那么它保持为假。

现在我只是选择最小的列并 .Select() ing它,然后在本地计算结果。但是有没有办法让数据库通过 linq-to-nhibernate 发回一个表示查询记录计数的整数?

谢谢!

0 投票
1 回答
2228 浏览

c# - 带有 isnull() 的 NHibernate HQL 在 where 不起作用

我将休闲 HQL-Query 与 NHibernate 一起使用:

在这个查询中,NHibernate 尝试将 :val (它是一个字符串)转换为一个双精度。z.Street 和 z.PostalCode 是可以为空的字符串字段。看起来 NHibernate 的 where 子句中的第一个 isnull() 存在问题。当我使用z.Street+isnull(z.PostalCode,'')它时,它正在工作。我也尝试过cast(isnull(z.Street,'')+isnull(z.PostalCode,'') as string),但这也不起作用,因为 NHibernate 的转换函数有问题(它会生成两个以上的参数)。有人可以帮助我,我如何用 NHibernate 解决这个问题?- 也许还有另一种写 where 条件的方法?

我使用 NHibernate 3.2

0 投票
2 回答
8490 浏览

nhibernate - NHibernate 3.2 多对多代码映射

我正在尝试学习NHibernate 3.2 built-in mapping by code api不是FluentNHibernate,也不是 xml)。你能帮我映射这些实体之间的多对多关系吗?

我的主要关键策略是:

我试试这个:

但它不起作用。

0 投票
1 回答
1568 浏览

nhibernate - NHibernate 3.2 通过代码和继承进行多到任何映射

尝试像这样映射我的域时,我有一个多对任意映射和继承冲突:

我像这样映射继承

现在我想映射IssuedToken(许多)和Member(任何)关系,但我不知道该怎么做!你能帮我理解和映射关系吗?

注意:我使用NHibernate 3.2的是代码映射——不是 NHibernateFluent API,也不是 XML

0 投票
1 回答
1207 浏览

lambda - 在 NHibernate 3.2 中删除多个对象

在我的Repository我有这样的方法:

但似乎这种方法并没有很好的表现!您对删除对象列表(通过谓词)有什么建议NHibernate 3.2吗?

0 投票
2 回答
877 浏览

.net - 合并引用新对象的现有对象

我从数据库中加载了一个 Contact-objekt。对象联系人具有到 ContactSecurity 的一对多映射:

现在,我尝试这样做:

但这是抛出一个 TransientObjectExcpeption '对象是一个未保存的瞬态实例 - 在合并之前保存瞬态实例:Prayon.Entities.ContactSecurity'

我也试过

我做错了什么?- 在合并联系人之前,我是否必须将新的 ContactSecurity-Object 与引用的联系人一起额外保存?- 或者有更简单的方法吗?

谢谢你的帮助。

0 投票
2 回答
3488 浏览

nhibernate - LINQ-to-NHibernate:不能将 Linq Skip() 和 Take() 与 FetchMany 一起使用

我有这些实体:

我想BlogPost通过他们Keyword的 s 和评论数加载 s 的分页列表。所以我试试这个:

但是会出现以下错误:

不支持指定的方法。

当我删除.Skip((pageNumber - 1) * pageSize).Take(pageSize)它时!例如

您有什么想法可以通过包含Keywords 来获取多行吗?感谢您的任何建议。


我正在使用NHibernate 3.2 mapping by code.