2017-08-02 8 views
1

ロールバックコミットで1行のカラム値を更新したいのですが、内部でテーブルオブジェクトを作成してinsertonsubmitに渡すと、エラーが出ます。このロールバックコミットで1行のカラム値のみを更新したい

var challan = dataContext.Purchase_Challans.Where(t => t.Challan_ID == Convert.ToInt64(ViewState["challanid"]) && t.Company_ID == Convert.ToInt32(Session["CompanyId"])).Select(t => t).ToList(); 
         if (challan.Any()) 
         { 
          challan.ToList()[0].Inv_DocumentId = dmsPurchaseInvoice.Document_ID; 
          dataContext.Purchase_Challans.InsertOnSubmit() 
          dataContext.SubmitChanges(); 
         } 

答えて

0

は、エラーの詳細を知るために参考になる解決するが、私はあなたが(あなたがそれを更新するのに対し)あなただけ取得したエンティティを挿入するのDataContextを伝えるからだと仮定します。

また、あなたが投稿したコードはコンパイルされず、challan.ToList()のような疑わしいコードでいっぱいです。既にリストであるか、デリゲート内の文字列を解析しています。

var challanId = Convert.ToInt64(ViewState["challanid"]); 
var companyId = Convert.ToInt32(ViewState["CompanyId"]); 
var challan = dataContext.Purchase_Challans.SingleOrDefault(t => t.Challan_ID == challanId && t.Company_ID == companyId); 
if (challan != null) 
{ 
    challan.Inv_DocumentId = dmsPurchaseInvoice.Documet_Id; 
    dataContext.SubmitChanges(); 
} 
+0

me.iためThanks.Itの仕事があれば、私が使用していると思いました。このコードは、より簡単で動作するように(しかし、私はそれをテストしていない正直に言うと)可能性が高くなり、言っ

insertonsubmitを使わずに直接 "submitchanges()"を呼び出すと、その作業はロールバックされません。 –

+0

私はより多くの評判のために狩りをしているので、答えを受け入れたものとしてマークして投票できますか?ありがとう。 – tinudu

関連する問題