EF Code First에서 내 테이블을 어떻게 단일화합니까?
데이터베이스 테이블 이름을 지정할 때 단수 명사를 사용하는 것을 선호합니다. 그러나 먼저 EF 코드에서 생성 된 테이블은 항상 복수입니다. 내 DbSet은 EF가 이름을 생성하는 곳이라고 생각하는 복수형이지만 코드에서 복수형을 사용하는 것이 더 실용적이라고 생각하므로 이러한 이름을 단 수화하고 싶지 않습니다. 나는 또한 설정을 재정의하려고 시도했지만 소용이 없었습니다.
어떤 아이디어? 여기 내 코드와 감사합니다.
MyObjectContext.cs
public class MyObjectContext : DbContext, IDbContext
{
public MyObjectContext(string connString) : base(connString)
{
}
public DbSet<Product> Products {get;set;}
public DbSet<Category> Categories {get;set;}
//etc.
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingEntitySetNameConvention>();
}
}
이 목적을 위해 잘못된 규칙 ( PluralizingEntitySetNameConvention )을 제거했습니다 . OnModelCreating 메서드를 아래와 같이 바꾸면 됩니다.
using System.Data.Entity.ModelConfiguration.Conventions.Edm.Db;
...
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
Entity Framework 6을 사용하면 DbContext에서 상속하는 파일에서 다음을 수행합니다.
using System.Data.Entity.ModelConfiguration.Conventions;
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
속성 값을 변경할 수도 있습니다.
도구 메뉴에서 옵션을 클릭하십시오. 옵션 대화 상자에서 데이터베이스 도구를 확장합니다. O / R Designer를 클릭하십시오. 클래스 이름이 변경되지 않도록 O / R Designer를 설정하려면 복수 이름을 Enabled = False로 설정하십시오. 복수화 규칙을 O / R 디자이너에 추가 된 개체의 클래스 이름에 적용하려면 이름의 복수화를 사용 = True로 설정합니다.
PluralizingTableNameConvention 정의 위치가 다음으로 이동되었습니다.
using System.Data.Entity.ModelConfiguration.Conventions;
참조 URL : https://stackoverflow.com/questions/4796543/how-do-i-singularize-my-tables-in-ef-code-first
'Development Tip' 카테고리의 다른 글
App Bundle에 리소스 디렉터리 계층 포함 (0) | 2020.12.30 |
---|---|
일부 변경 세트를 수은의 새 분기로 이동하는 방법 (0) | 2020.12.30 |
'open'제네릭 형식과 함께 IsAssignableFrom 사용 (0) | 2020.12.30 |
Hibernate 오류 :이 클래스의 ID는 save ()를 호출하기 전에 수동으로 할당되어야합니다. (0) | 2020.12.30 |
게터와 세터를 동기화해야합니까? (0) | 2020.12.30 |