2011-10-04 4 views
1

약간의 조사를하고 있으며 다음과 같은 것이 가능한지 궁금합니다.EF Codefirst, 하나의 클래스, 식별자가있는 다중 테이블

내가 확장 할 수있는 모든 유형에 대해 재사용 할 수있는 BaseEntityWithDetails 클래스를 만들려고합니다. 예 :

public abstract class EntityDetail 
{ 
} 

이 클래스는 엔터티의 키와 값을 유지하는 데 사용됩니다.

"제품은"... 다음을 수행하여 확장 될 것

public class ProductDetail : EntityDetail 
{ 

} 

public class Product : BaseEntityWithDetails<ProductDetail> 
{ 

} 

기본 클래스 "BaseEntityWithDetails"설정 및 취득하기위한 몇 가지 헬퍼 메소드를 제공합니다. 어떻게 생각해? 또 다른 유형은 사전에 다음과 같은

같은
public class ProductMap : DetailsEntityTypeConfiguration<Product, ProductDetail> 
{ 
} 

감사를 DetailsEntityTypeConfiguration을 구현할 수 있도록 아주 쉽게하면서 EF CodeFirst로이 매핑의 가장 효과적인 방법은 무엇

!

답변

1

저는이 말에 정말 똑똑한 사람을 인용하고 싶습니다 : Reuse is a fallacy. 이렇게하면 물건을 다루는 일이 번거롭지 않고 복잡해집니다. 동일한 동작을 실제로 공유하는 도메인의 엔티티에 상속을 저장하고 이러한 가정을 앞에 두지 마십시오.

부수적으로 : "EntityDetail"을 데이터베이스에 넣으면 이것을 table per type으로 매핑 할 수 있지만 앞에서 말했던 것처럼 좋은 생각이 아닙니다.

관련 문제