2017-03-06 6 views
3

私はこのプロセスを、ユーザーが小切手を無効にしたいときに起こります。ロード、更新、保存、またはSQLコマンドの挿入/更新を直接実行しますか?

各チェックは、複数のPayableCheckレコードが含まれており、複数のエラーレコード

Check.CheckID = PayableCheck.CheckID 
Check.CheckID = Error.CheckID 

各PayableCheckは1つの買掛金レコードにまで一致しています。

PayableCheck.PayableID = Payable.PayableID 

各買掛金は、ユーザーが(確認ID番号を与えられた)チェックを無効にすると、私はする必要が領収書またはエラー

Error.PayableID = Payable.PayableID 
Receipt.PayableID = Payable.PayableID 

に対応:チェックを設定

  1. ステータスV
  2. 元の小切手の金額の負数で別の小切手を作成
  3. 別のエラーを作成するまたは、元のチェックに関連する各エラーのため、各エラーは
  4. を設定し、元のチェック
  5. にリンクされている各PayableCheckのActiveフィールドを0に設定し、負の量を持つ各リンクされた各エラーを設定し、ステータスO
  6. に支払ってくださいリンクステータスO、およびリンクされた各領収書にステータスOへ

は私が裕福Entity Frameworkのを使用してC#で変更を行った後、保存のすべてをロードアム、または単にSQL更新と挿入を使用してより良い方法はありますか?

+1

あなたが求めているのであれば、効率に違いはないとは思いません。エンティティフレームワークの使用を開始した場合は、一貫性を維持する必要があります。 EFで複雑すぎるとわかった場合は、ストアドプロシージャを作成できます。そうすれば、コードを再コンパイルせずに後で変更することができます。ちょうど私の$ 0.02。 – justiceorjustus

+0

私はEFを使用しています。私はちょうどどの方法でコード化して維持するのが簡単だろうと思っていた。 –

答えて

1

「簡単なルート」を変更すると、EFを使用してデータをコンテキストにロードすることができます。変更を加えて変更を保存します。

これはかなり良いSQLになるはずですが、エンティティのサイズや読み込むデータの量について懸念がある場合、SQLで直接処理してストアドプロシージャをスクリプト化する方がよいでしょうあなたはもちろん、EFからそれを呼び出すことができます。

2

SQL Serverでストアドプロシージャを作成して、目的を達成するすべてのSQLを書き込む方がよいです。

関連する問題