问题标签 [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.
c# - NHibernate - 级联删除不起作用
我将 NHibernate 3.2 与 MS SQL Server 2008 R2 一起使用
我有休闲映射
这个有一个对 LocalizedProperty 的引用:
我的问题是,当我删除 CommunicationType 的实体时,NHibernate 正在执行 LocalizedProperty 的休闲更新语句
而不是删除语句。
有人看到了吗,怎么了?
c# - NHibernate,映射一个集合,其中键可以是两个不同的列
有一个实体A。
此外,还有一个实体B与A有两个关联。
A有一个集合B。
如果关联的 A之一是已加载A的父 级,则此集合必须加载任何B。
问题是 A 上的集合映射必须根据检查两个A关联之一是否是父关联来过滤子项。
我怎样才能做到这一点?
注意:顺序无关紧要,因此您可以使用bag建议一些映射。
注 2:请建议如何使用 XML 映射来实现,我不会在代码中这样做。
更新:真实场景:
这都是关于友谊的实施。我想在实体 UserProfile 中映射友谊的集合。Friendship 有两个代表关系的关联:OneUser、OtherUser。如果我想为我获取所有朋友,我需要检查这两个属性,因为如果两个属性之一是我自己,一个是我的朋友。
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 行
c# - 我将如何使用 Linq-To-Nhibernate (NH3.2) 让数据库在没有记录本身的情况下向我返回查询的记录数?
我有一堆查询要运行,如果它们中的任何一个甚至返回一个结果,我都会将布尔变量切换为 true。如果它们都没有返回任何结果,那么它保持为假。
现在我只是选择最小的列并 .Select() ing它,然后在本地计算结果。但是有没有办法让数据库通过 linq-to-nhibernate 发回一个表示查询记录计数的整数?
谢谢!
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
nhibernate - NHibernate 3.2 多对多代码映射
我正在尝试学习NHibernate 3.2 built-in mapping by code api
(不是FluentNHibernate,也不是 xml)。你能帮我映射这些实体之间的多对多关系吗?
我的主要关键策略是:
我试试这个:
但它不起作用。
nhibernate - NHibernate 3.2 通过代码和继承进行多到任何映射
尝试像这样映射我的域时,我有一个多对任意映射和继承冲突:
我像这样映射继承:
现在我想映射IssuedToken
(许多)和Member
(任何)关系,但我不知道该怎么做!你能帮我理解和映射关系吗?
注意:我使用NHibernate 3.2
的是代码映射——不是 NHibernateFluent API,也不是 XML。
lambda - 在 NHibernate 3.2 中删除多个对象
在我的Repository
我有这样的方法:
但似乎这种方法并没有很好的表现!您对删除对象列表(通过谓词)有什么建议NHibernate 3.2
吗?
.net - 合并引用新对象的现有对象
我从数据库中加载了一个 Contact-objekt。对象联系人具有到 ContactSecurity 的一对多映射:
现在,我尝试这样做:
但这是抛出一个 TransientObjectExcpeption '对象是一个未保存的瞬态实例 - 在合并之前保存瞬态实例:Prayon.Entities.ContactSecurity'
我也试过
我做错了什么?- 在合并联系人之前,我是否必须将新的 ContactSecurity-Object 与引用的联系人一起额外保存?- 或者有更简单的方法吗?
谢谢你的帮助。
nhibernate - LINQ-to-NHibernate:不能将 Linq Skip() 和 Take() 与 FetchMany 一起使用
我有这些实体:
我想BlogPost
通过他们Keyword
的 s 和评论数加载 s 的分页列表。所以我试试这个:
但是会出现以下错误:
不支持指定的方法。
当我删除.Skip((pageNumber - 1) * pageSize).Take(pageSize)
它时!例如
您有什么想法可以通过包含Keyword
s 来获取多行吗?感谢您的任何建议。
我正在使用NHibernate 3.2 mapping by code
.