2013-07-19 2 views
2

Entity Framework Database First를 사용하면 Model.Context.cs 파일이 자동으로 생성됩니다. 제가 DB에서 모델을 업데이트 할 때마다Entity Framework를 사용하여 db에서 모델을 업데이트 한 후 Model.Context.cs 파일 헤더 내용을 보존하는 방법은 무엇입니까?

public partial class MyDatabaseContext : DbContext, IDbContext 
{ 
    public MyDatabaseContext() 
     : base("name=MyDatabaseContextEntities") 
    { 
     // disable lazy loading for best practices - keeps from accidentaly loading large entity graphs 
     Configuration.LazyLoadingEnabled = false; 
    } 

    // refactored 
    public new IDbSet<T> Set<T>() where T : class 
    { 
     return base.Set<T>(); 
    } 

    public override int SaveChanges() 
    { 
     // this.ApplyStateChanges(); 
     return base.SaveChanges(); 
    } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     throw new UnintentionalCodeFirstException(); 
    } 
    . 
    . 
    . 
이 문제는 분명히,이 파일을 얻을 수있다

것을 :

나는 일과 저장소 패턴의 단위와 호환되도록 클래스의 헤더 부분을 수정 한 덮어 쓴.

* .config의 주석 처리 된 부분에 관련 코드를 저장하고 모델이 업데이트 될 때마다 해당 코드를 복사하여 붙여 넣기 만하면됩니다.

모델이 자주 업데이트되지 않더라도이 콘텐츠를 유지하는 방법이 있는지 알고 싶습니다. 복사/붙여 넣기의 추가 단계를 거칠 필요가 없습니다.

답변

2

추가 된 멤버의 경우, 클래스의 다른 부분을 포함하는 다른 파일을 만들 수 있습니다. 이 새 파일은 덮어 쓰지 않으므로 거기에 추가 한 내용은 업데이트 사이에 유지되어야합니다.

새 멤버가 아닌 변경 사항 (예 : 생성자에서 추가 된 행)은 Model.Context.tt 파일을 직접 편집 할 수 있습니다. 모델이 업데이트 될 때 코드를 다시 생성하는 데 사용되는 간단한 T4 Text Template입니다. ASP.NET 페이지와 비슷합니다. 그러나 C#을 사용하여 HTML을 생성하는 대신 C#을 사용하여 더 많은 C#을 생성합니다.