2011-01-19 9 views
3

私はRIAサービスとnHibernateの組み合わせを持っています。 nHibernateは、データベース側でIDを使用するように設定されています。したがって、新しいエンティティはidが0で送信されます。 nHibernateは必要に応じて動作します。データベースから生成されたキーを更新し、エントリを更新します。RIAサービスとnHibernateは新しい問題を挿入します

私は構成階層を持つ例があります。私の主体は複雑で、2つのコレクションを持っています。

InvestObject 
- MaterialItems 
- WorkItems 

私は1つの作業単位でこの構造体を使用します。 Silverlightアプリケーションでデータを取得して表示することは問題ありません。ただ素材のため、いくつかのダミーの負のIDを生成するために、

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(IEnumerable 1 changeSetEntries) at System.ServiceModel.DomainServices.Server.ChangeSet..ctor(IEnumerable 1 changeSetEntries)

クライアント側のクイックフィックスがあります:私はクライアント側でMaterialItemsコレクションに複数の項目を追加しようとした場合保存するときしかし、私はこのエラーを取得します。これはRIAで動作し、保存はサーバー側に伝播されます。しかし、nHibernateはエラーを発生させます。beacuseは、指定された値()ではなく、すべての新しいIDに対して0を期待します。だからこれは問題ではない。

最後に、新しいIDをすべて0に戻してnHibernateを騙しましたが、これで私は幸せにはなりません。それは面倒な醜い解決策です。

答えて

0

を助けてください、私は詳細がかすんでいるが、私はあなたが基本的にRIAサービスとDBに生成されたIDを使用することはできませんだと思うので、これをやったので、それはしばらくしています。代わりにHiLoアルゴリズムを使用しました。

関連する問題