gpt4 book ai didi

silverlight - RIA 服务和 nHibernate 插入新问题

转载 作者:行者123 更新时间:2023-12-02 05:12:02 24 4
gpt4 key购买 nike

我结合了 RIA 服务和 nHibernate。 nHibernate 配置为在数据库端使用标识。因此,新实体的 ID 为 0。 nHibernate 正常工作。它更新从数据库生成的 key 并更新实体。

我有组合层次结构的例子。我的实体很复杂,它有两个集合。

InvestObject 
- MaterialItems
- WorkItems

我在一个工作单元中使用这种结构。在 Silverlight 应用程序中获取和显示数据没有问题。但是,如果我尝试在客户端的 MaterialItems 集合中添加多个项目,则在保存时会出现此错误:

Submit operation failed. Invalid ChangeSet : Only one entry for a given entity instance can exist in the ChangeSet. at System.ServiceModel.DomainServices.Server.ChangeSet.ValidateChangeSetEntries(IEnumerable1
changeSetEntries) at
System.ServiceModel.DomainServices.Server.ChangeSet..ctor(IEnumerable
1 changeSetEntries)

客户端有一个快速修复,只是为 Material 生成一些虚拟的负 ID。这适用于 RIA,并且保存会传播到服务器端。但是随后 nHibernate 会引发错误,因为它期望所有新 ID 都为 0 而不是给定值 ()。所以这不行。

最后,我通过将所有新 ID 重置为 0 来欺骗 nHibernate。但这并不能让我开心。这是一个凌乱丑陋的解决方案。

请帮忙

最佳答案

我已经有一段时间没有这样做了,所以细节不太清楚,但我认为您基本上不能将数据库中生成的 ID 与 RIA 服务一起使用。我们改用 HiLo 算法。

关于silverlight - RIA 服务和 nHibernate 插入新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4734697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com