问题标签 [nhibernate]
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.
nhibernate - 为什么我的 NHibernate 包集合没有动态设置孩子的“父 ID”?
我有一个新对象,其中包含作为 IList 的某个属性的新对象集合。我通过sql profiler看到两个正在执行的插入查询..一个用于父级,它具有新的guid id,另一个用于子级,但是,引用父级的子级外键是一个空的guid。这是我在父级上的映射:
在 Backer.cs 类上,我将 BackerEntries 属性定义为
当我尝试 SaveOrUpdate 传入的实体时,我在 sql profiler 中得到以下结果:
exec sp_executesql N'INSERT INTO Backer (Name, PostCardSizeId, ItemNumber, BackerId) VALUES (@p0, @p1, @p2, @p3)',N'@p0 nvarchar(3),@p1 uniqueidentifier,@p2 nvarchar(3 ),@p3 uniqueidentifier',@p0=N'qaa',@p1='BC95E7EB-5EE8-44B2-82FF30F5176684D',@p2=N'qaa',@p3='18FBF8CE-FD22-4D08-A3B1-63D6DFF426E5'
exec sp_executesql N'INSERT INTO BackerEntry (BackerId, BackerEntryTypeId, Name, Description, MaxLength, IsRequired, Priority, BackerEntryId) VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7) ',N'@p0 uniqueidentifier,@p1 uniqueidentifier,@p2 nvarchar(5),@p3 nvarchar(5),@p4 int,@p5 bit,@p6 int,@p7 uniqueidentifier',@p0='00000000-0000 -0000-0000-000000000000',@p1='2C5BDD33-5DD3-42EC-AA0E-F1E548A5F6E4',@p2=N'qaadf',@p3=N'wasdf',@p4=0,@p5=1,@ p6=0,@p7='FE9C4A35-6211-4E17-A75A-60CCB526F1CA'
如您所见,它不会将孩子上 BackerId 的空 guid 重置为父母的新真实 guid。
最后,异常抛出是:
编辑:解决了!下面的第一个答案为我指明了正确的方向。我需要在子映射和类上添加该反向引用。这允许它以纯粹的 .net 方式工作 - 但是,当接受 json 时,会出现断开连接,所以我不得不想出一些古怪的代码来“重新连接”孩子。
.net - NHibernate + JSON/Ajax 父/子关系?为什么这不起作用?
我有一个典型的父母/子女关系。写新闻.NET
和添加孩子效果很好,NHibernate
玩得很好,并增加了正确的关系。
但是,当将 aJSON object
从客户端传递给将我的 JSON 序列化为 .NET 表示的某个方法时,NHibernate 似乎会感到困惑。它提出了正确的查询来添加父级(并为 Id 分配一个新的 guid),但是,它不会将该父级 ID 与它尝试执行的 SQL 中的子级对象相关联。我想出了一个快速而肮脏的技巧,我在下面列出 - 但我想知道,这里有什么我遗漏的吗?
这样做是我似乎可以让 NHibernate 看到这些孩子真的属于这个父母的唯一方法。在我的 AddChild 方法内部看起来像这样:
编辑:我想我可能刚刚意识到为什么 - 可能是因为我没有在 JSON 中发回孩子的 Parent 属性。由于两者的循环性质,我什至不确定这是否可能。孩子有父母(在json中有一个孩子,他是有父母的原始孩子,等等)......有什么想法吗?
c# - NHibernate ICriteria - 排序是否允许为空?
使用 NHibernate ICriteria 并添加 .AddOrder ...我想按一个有时为 null 的属性进行排序,所有填充的属性都在顶部。.AddOrder 会允许我这样做吗?如果没有,还有其他选择吗?
ILists 的排序选项还有很多不足之处。
c# - 缓存会话工厂
据我收集(阅读:测量),到目前为止,构建配置和 sessionfactory 在使用 nhibernate 执行查询时花费的时间最多。有什么反对使 sessionfactory 静态的,所以每个 appDomain 只会配置一次?
我知道在使用这种方法时会出现锁定和竞速问题,但就我个人而言,在 sessionfactory 上使用这种方法时,我看不出这会破坏我的应用程序。
我问这个的原因是因为它真的很难测试可能的线程问题,因为它不会一直发生。
nhibernate - 验证块与 Nhibernate.Validator
我正在寻找验证框架,虽然我已经在使用 NHibernate,但我正在考虑使用 contrib 项目中的 NHibernate.validator,但是我也查看了 MS Validation Block,它似乎很强大,但我还没有深入了解每个框架,所以我想知道有没有人涉足这两个框架,体验如何?
nhibernate - NHibernate 查询问题
我对 NHibernate 很陌生,并开始找到自己的方式。
我有一个有点像树的域模型。
基金有期间有选择有审计
现在我想获得特定基金的所有审计
如果我用 SQL 做的话会是这个样子
SELECT A.*
FROM Audit A
JOIN Selection S ON A.fkSelectionID = S.pkID
JOIN Period P ON S.fkPeriodID = P.pkID
JOIN Fund F ON P.fkFundID = F.pkID
WHERE F.pkID = 1
所有输入表示赞赏!
nhibernate - 您如何使用 NHibernate 将枚举映射到数据库和从数据库映射枚举?
编辑:瑞恩提出了一个很好的观点。我特别希望能够相互映射,同时仍将人类可读的值存储在数据库中。也就是说,我不希望我的数据库中有一堆枚举整数。
c# - NHibernate 多对多关系表中的附加字段
当我与 nhibernate 具有多对多关系并让 nhibernate 生成我的数据库模式时,它会添加一个包含相关实体主键的附加表。是否可以为此添加其他字段并访问它们,而不必手动使用 sql 进行麻烦?
sql-server - 如何在 SQL Server 和 NHibernate 之间组合级联更新/删除?
我正在编写一个带有手工制作的域模型(类)和手工制作的数据模型(表/关系)的应用程序,并让 NHibernate 负责映射。
最好是告诉数据库执行级联更新或删除还是告诉 NHibernate 这样做(cascade="all-delete-orphan")?可以同时设置它们吗?
nhibernate - session.Merge 和 session.SaveOrUpdate 有什么区别?
我有时注意到我的父/子对象或多对多关系,我需要调用SaveOrUpdate
or Merge
。通常,当我需要调用时SaveOrUpdate
,我调用的异常Merge
与未首先保存的瞬态对象有关。
请说明两者的区别。