2010-11-25 114 views
3

我有一個ASP .net C#項目使用EntExpertDataSource與DevExpress aspxGridView,它運作良好,允許我選擇,更新,插入和刪除。不過,我想使用自定義的刪除方法,而不是基本上只是一個更新(只是設置一個活動標誌爲false)而不是真正的刪除。EntityDataSource覆蓋自定義刪除

我有一種感覺,我需要使用entitydatasource的或網格onrowdeleting事件,但這是我的第一個項目與實體框架4.0,所以仍然找到我的腳。我不知道是否需要在文件後面的edmx代碼中創建覆蓋更新方法。

非常感謝任何幫助。

回答

6

您可以在SavingChanges事件上註冊處理程序以執行所需的掃描。 是這樣的:

public partial class AWEntities{ 

partial void OnContextCreated() 
{ 
    this.SavingChanges += new EventHandler(context_SavingChanges);// Register the handler for the SavingChanges event. 
} 

private static void context_SavingChanges(object sender, EventArgs e)// SavingChanges event handler. 
{ 
    // Get all in Deleted state 
    foreach (ObjectStateEntry entry in 
     ((ObjectContext)sender).ObjectStateManager.GetObjectStateEntries(EntityState.Deleted)) 
    { 
     if (entry.Entity.GetType() == typeof(MyType))) 
     { 
      // do what you want. 
     } 
    } 
} 
} 

http://msdn.microsoft.com/en-us/library/cc716714.aspx

,或者你可以映射一個存儲過程來執行你刪除你想要的方式。 http://learnentityframework.com/LearnEntityFramework/tutorials/using-stored-procedures-for-insert-update-amp-delete-in-an-entity-data-model/

我更喜歡第二個選項...

+0

謝謝羅伯託,去存儲過程選項的映射 – Washburn 2010-12-07 23:48:26