2010-11-25 4 views
3

내가 DevExpress의 aspxGridView와 EntityDataSource를 사용하여 ASP .NET의 C# 프로젝트를 가지고 있고 그것은 나를 선택 갱신, 삽입 및 삭제 할 수 있도록 큰 노력하고 삭제합니다. 그러나 대신 기본적으로 단순히 대신 실제로 삭제 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

감사 로베르토는 CRUD 작업에 대한 매핑 저장 프로 시저 – Washburn

+0

내 유일한 관심사는 내가 작업을 실행하는 사용자를 추적하는 것입니다 저장 프로 시저 옵션의 매핑을 갔다 현재 사용자가 참조 할 때마다 업데이트되는 엔티티에 사용자 ID 필드가 없으면 할 수 없습니다. 앱이 데이터베이스와 다른 서버에서 실행될 때 가장과 트리거를 사용하여 담당 사용자를 추적 할 수 없습니다. 그 목표를 염두에두고, 첫 번째 제안은 나를 위해 더 좋아 보인다. – Jesslyn

+0

삭제 SP를 지정하면 삽입 및 업데이트 작업에도 SP를 제공해야합니다. – ClearCloud8

관련 문제