0

내 데이터 테이블 따라서 데이터가 같은 저장, 스파 스 다음 DB에엔티티 프레임 워크와 스파 스 테이블

RowId | Field | Value 
    1 ,"Field1", 1.00 
    1 ,"Field2", 2.00 
    1 ,"Field4", 4.00 
    2 ,"Field1", 1.00 
    2 ,"Field3", 3.00 

그리고 여러 행은 하나의 객체로 취급되어야한다.

Model obj=new Model(1);//where 1 refers to the RowId 
obj.Field1=1;//should update the relevant row 
obj.Field2=0;//should delete the relevant row (assuming 0 is the default value) 
obj.Field3=3;//should create a new row 

가 어떻게이 문제를 캡슐화하는 엔티티 프레임 워크를 사용할 수 있습니다 : 예를 들어 ?

+0

키 - 값 쌍을 사용하는 대신 [스파 스 열] (http://technet.microsoft.com/en-us/library/cc280604.aspx)을 확인해야합니다. 당신이 "스파 스 테이블"이라고 부르는 것은 일반적으로 나쁜 설계 (매우 비효율적 인)로 간주됩니다. ORM은 더 많은 두통을 유발하지 않으면 서이를 해결할 수 없습니다. 최소한 : 모든 것을 읽지 않고 얼마나 많은 필드가 있는지를 알 수 없을 때 어떻게 필드에 매핑 할 수 있습니까? –

답변

1

설명하신 것은 희박한 테이블이 아니며, Entity-Attribute-Value (EAV) 테이블입니다. Entity Framework는 EAV 모델링을 지원하지 않으며, 아마 performance issues으로 이어질 수 있습니다.

속성이 동적이지 않은 경우보다 일반적인 방식으로 데이터를 모델링하고 Sparse Columns을 사용하면 자신의 pros and cons이 있습니다.

엔티티 프레임 워크가 작동하는 방식을 고려할 때 가장 사소한 응용 프로그램을 제외하고는 3 정규형 작별 인사를 할 수 있습니다.