2011-06-20 10 views

答えて

1

はい、いくつかのカスタムロジックを実行するために、Entity Frameworkの場合、保存プロセスにプラグインする方法があります。ここで

は単純NorthwindEntitiesモデルを拡張し、追加/更新/削除処理中にいくつかの作業を行う方法の例である:これは、依存関係のために私にObjectStateEntriesを取得することはありません

public partial class NorthwindEntities 
{ 
    partial void OnContextCreated() 
    { 
     SavingChanges += OnSavingChanges; 
    } 

    private void OnSavingChanges(object sender, EventArgs e) 
    { 
     var context = sender as NorthwindEntities; 

     if (context != null) 
     { 
      context.DetectChanges(); 

      var objectStateManager = context.ObjectStateManager; 

      foreach (var entry in objectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Deleted)) 
      { 
       switch (entry.State) 
       { 
        case EntityState.Added: 
         // Perform custom 'add' logic here 
         break; 
        case EntityState.Modified: 
         // Perform custom 'update' logic here 
         break; 
        case EntityState.Deleted: 
         // Perform custom 'delete' logic here 
         break; 
       } 
      } 
     } 
    } 
} 
+0

として、彼らは実際になりますDBに保存されます... – Jeff

+0

達成しようとしている具体例を含めるように質問を編集してください。私は試してみたいと思いますが、あなたのシナリオは何ですか? – Elie

関連する問題