2011-01-31 9 views
0

私が取り組んでいるアプリケーションは、RIA Webサービス、ストアドプロシージャ、およびNHibernateをORMとして使用しています。私はデータを取得することができましたが、私は現在データの更新に問題があります。私はこれを見つけたhttp://forums.silverlight.net/forums/p/172626/389010.aspx、と私は物事を提案するように設定しようとしました。以下のように(簡体字)私のコードは次のとおりです。私はフィドラーを使用しましたし、私は、Webサービスへの呼び出しが行われていることを確認することができますRIA Webサービスはストアドプロシージャを使用してデータを保存します

private void Save_Click(object sender, RoutedEventArgs e) 
{ 
    _ctx.Load(_ctx.UpdateProdOrderByWorkCellIdAndDateListQuery(list), SaveChanges, null); 
} 

private void SaveChanges(LoadOperation<OrderAndOperationAndWCData> obj) 
{ 
    _ctx.SubmitChanges(); 
} 

。しかし、問題は、SQL Server Profilerを見ると、ストアドプロシージャの保存が呼び出されないということです。誰かが間違っている可能性について何かアドバイスを提供することはできますか?

---編集

私は、ストアドプロシージャを呼んでいる方法が間違っていると思われます。私は次のようなものを持っています:

this.GetSession().CreateSQLQuery("exec usp_Update @MyArray=:MyArray") 
      .AddEntity(typeof(OrderAndOperationAndWCData)) 
      .SetParameter("MyArray", list); 

それはそれかもしれません誰にも分かりますか?

+0

Webサービスによって例外がスローされますか? –

+0

誰にも私にはわかりません。 – DavidS

+0

コメントの欠如から、私は重要な情報を与えてはならないと思われます。これをデバッグする方法を教えてもらえますか? – DavidS

答えて

0

私は最終的に答えを見つけました。これは、NHibernateでの私の理解不足のためです。

this.GetSession().CreateSQLQuery("exec usp_Update @MyArray=:MyArray") 
     .AddEntity(typeof(OrderAndOperationAndWCData)) 
     .SetParameter("MyArray", list); 

をしかし、それはされている必要があります:実際には、私のコードで私が持っていた

this.GetSession().CreateSQLQuery("exec usp_Update @MyArray=:MyArray") 
      .AddEntity(typeof(OrderAndOperationAndWCData)) 
      .SetParameter("MyArray", list) 
      .ExecuteUpdate(); 

私は今、発生した例外を持っているが、それがうまくSPROC自体をどうすることもできるが。

関連する問題