0

asp.net mvc-3アプリケーションでORMとしてLinq-2-Sqlを使用しています。最初にフォームを見てください。 enter image description here これは、バッチ情報を編集するためのマスター詳細フォームです。マスターパート(バッチテーブル)には、BatchNo、SKUTitle、StageID、およびDateフィールドが含まれます。詳細部分(BatchDetail)には、PackingInstruction、ExpectedYield、UnitsおよびTargetDateの各フィールドがあります。この情報を作成シナリオのシングルページに保存することができましたLinq-2-Sqlを使用したマスター詳細レコードの編集

public ActionResult CreateBatch(Batch batch, BatchDetail detail) 
{ 
    batch.BatchDetails.AddRange(detail.ToList()); 
    ctx.Batches.InsertOnSubmit(batch); 
    ctx.SubmitChanges(); 
} 

編集シナリオはかなりトリッキーです。上記の図のように、ユーザーは新しいレコードを詳細に追加したり、既存のレコードを削除したり編集したりすることができ、データがコントローラに送信されるまでに、どのレコードが新しく追加されたか、削除されました。その結果、私は何かをする必要があります

public ActionResult EditBatch(int id, BatchDetail detail) 
{ 
    var batch = ctx.Batches.SingleOrDefault(x=>x.BatchID == id); 
    ctx.BatchDetails.DeleteAllOnSubmit(ctx.BatchDetails.ToList()); 
    UpdateModel(batch); 
    batch.BatchDetails.AddRange(detail); 
    ctx.SubmitChanges(); 

} 

私はこのシナリオでは、詳細レコードを削除するのは嫌いです。 Linq-2-Sqlには、同様のシナリオですべてのレコードを削除する方法がありますか?そうでない場合は、不要な削除をせずにEFでこれを達成できますか?
編集:私はjQueryのAJAXを使用して、ショッピングカートからアイテムを削除対象と小さな部分があるSystem.Data.Linq.Tableの方法を取り付けて研究してきたが、MVC Music Storeのデモでは何も

答えて

0

を見つけ出すように見えることはできませんコントローラーの削除アクションを呼び出します。この例はpart 8 of this tutorialです。

実際のAJAXコールの説明は、ページの途中の約3/4です。セクションの見出しは、すぐに検索して見つけたい場合は「jQueryを使ったAjax Updates」です。

関連する問題