2011-05-11 5 views
5

LINQ to SQL에는 매퍼에게 사용할 데이터베이스 스키마를 알려주는 매우 간단한 규칙 ([Table(Name = "SchemaName.TableName")])이 있습니다.Entity Framework 코드 우선 엔터티마다 스키마 구성

EF CF 4.1과 비슷한 것이 있습니까? 엔티티 클래스에서 어노테이션을 사용하여 가능한 한 순수하게 유지하려고합니다. 내 프로젝트를 계속 유지하기 위해서 나는 희생을 할 것이다.

이 질문은 정확하지만 꼭 필요한 것은 아닙니다. 이름이 변경되었거나 최근 EF 4.1 릴리스 이후 변경 사항을 깨뜨린 클래스를 말하는 것처럼 오래된 것일 수도 있습니다. Entity Framework 4: Code First - Creating db in another schema? MapSingleType?

EDIT : 현재 내 애플리케이션에 세 가지 스키마가 있음을 언급해야합니다. 따라서 기본 스키마 만 "dbo"에서 "otherschema"로 변경하는 솔루션을 반드시 사용할 수는 없습니다.

답변

8

사용자 지정 규칙이 최종 버전에서 제거 되었기 때문에 연결된 대답이 오래되었고 제대로 작동하지 않습니다. 스키마의 이름을 변경하려면 유창한 API를 사용할 수 있습니다 :

public class Context : DbContext 
{ 
    public DbSet<YourType> YourTypeSet { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     base.OnModelCreating(modelBuilder); 
     modelBuilder.Entity<YourType>().ToTable("TableName", "SchemaName"); 
    } 
} 
+0

나는 자동으로 테이블 이름을 설정하고 스키마를 수동으로 설정하고 싶습니다! 그러나 어떻게? ToSchema()와 같은 메소드가 있어야합니다 ...하지만 그렇지 않습니다. –

관련 문제