2011-06-20 11 views
0

linqによって作成されたオブジェクトに対する変更を記録する最も良い方法は何か不思議でした。LINQからSQLに生成されたオブジェクトに対するログの変更

私の周りで検索しました、これは私が思い付いたものです:

using (testDBDataContext db = new testDBDataContext()) 
{ 
    Sometable table = db.Sometables.Single(x => x.id == 1); 

    table.Something = txtTextboxToChangeValue.Text; 

    Sometable tableBeforeChanges = db.Sometables.GetOriginalEntityState(table); 

    foreach (System.Data.Linq.ModifiedMemberInfo item in db.Sometables.GetModifiedMembers(table)) 
    { 
     // Obviously writing to debug is not what i would like to do 
     System.Diagnostics.Debug.WriteLine("Old value: " + item.OriginalValue.ToString()); 
     System.Diagnostics.Debug.WriteLine("New value: " + item.CurrentValue.ToString()); 
    } 
} 

が、これは本当に変更を記録するために行く方法ですか?

+0

どのような種類のLINQですか? LINQ to XML? –

+0

LINQ to SQLは、 – Andreas

+0

を使用しています。将来的には_say so_ –

答えて

0

Iveで検索したところ、DoodleAudit(doddleaudit.codeplex.com)を使用すると思っていました。

0

Change TrackingまたはChange Data Captureです。 LINQはそれとは関係ありません。一般的な規則として、クライアント側で発生していない代替アクセスで変更が発生する可能性があるため、クライアント側ではサーバーで発生した変更を適切に追跡できません。注意すべき点として、すべての変更に対して完全なデータ監査を設定することは、パフォーマンス税のペナルティが通常は高すぎるため、ほとんど成功しません。

+0

@RemusRusanuうわー...初心者のためのかなり複雑な感じです...これはもっと簡単な方法ですか? – Andreas

+0

ログを記録する理由とその理由を明確にする必要があります。あなたが持っている要件を明示してください。 –

+0

オブジェクトは、電話、電子メール、wwwのような多くの顧客情報を持つCustomerオブジェクトです。私の会社では、すべての従業員がログインし、顧客のデータを表示/編集することができます。今私は従業員の変更を記録したいと思います。例えば、「顧客名がAからBに変更されました2011-06-20」 – Andreas

関連する問題