2016-05-31 1 views
-1

Entity Framework를 사용하여 SaveChanges DbContect를 재정의하려고합니다.DbContext 무시 SaveChanges가 실행되지 않음

재정 INT의 SaveChanges를()는

실행되지 않고 중단 점 적중되지 않습니다.

클래스를 EDMX 파일이있는 루트로 옮겼지만 여전히 도움이되지 않았습니다.

나는 어떻게 얻을 수 있습니까? SaveChanges override는 어떻게 작동합니까?

using System; 
using System.Data.Entity; 

namespace DAL 
{ 
    public class MyEntities : DbContext 
    { 
     public override int SaveChanges() 
     { 
      throw new Exception("override DbContext>SaveChanges working"); 
      // return base.SaveChanges(); 
     } 
    } 
} 

코드는 가장 쉬운 방법 SaveChanges를

using (var ctx = new Entities()) 
      { 
       // model.clientID = data.clientID; 
       // model.clientGUID = data.clientGUID; 
       model.clientName = data.clientName; 
       model.clientDept = data.clientDept; 
       model.clientWebsite = data.clientWebsite; 
       model.clientEmail = data.clientEmail; 
       model.isActive = data.isActive; 
       model.clientModDate = data.clientModDate; 
       model.clientCreatedDate = data.clientCreatedDate; 

       ctx.Clients.Add(model); 
       ctx.SaveChanges(); 
      } 

File/Solution code

+0

어디에서나 SaveChanges() 메소드를 호출하고 있습니까? 전화 코드를 보여줄 수 있습니까? – bassfader

+0

@bassfader 질문이 SaveChange()의 코드 예제로 업데이트되었습니다. –

+3

귀하의 호출 코드가 게시 한'MyEntities' 클래스와 다른 Entities를 인스턴스화하고 있습니다. – sstan

답변

0

호출 다음 EF 클래스가 "부분"으로 정의된다.

public partial class MyEntities 
{ 
    public void SavingChanges() 
    { 
     //Do custom code 

     this.SaveChanges(); 
    } 
} 

을 그리고 SavingChanges()SaveChanges() 호출을 모두 변경 : 그래서 클래스 이름의 존재와 다른 클래스 파일을 추가합니다. 그런 다음 원하는대로 프로세스를 사용자 정의 할 수 있습니다. 핵심은 다른 부분 클래스를 추가하여 EF 컨텍스트가 부분적으로 정의되었는지 확인하는 것입니다 (코드 샘플에는 없지만 기본 구현 임).

0

제공된 주석을 사용하여 코드를 작동시킬 수있었습니다.

  1. 은 EDMX는
  2. 공공 부분 클래스 엔티티 < --- 이제 모든 작업

프로젝트 엔티티와 같은 이름을있는 같은 프로젝트의 클래스 파일을 만듭니다!