2012-04-14 5 views
0

I는 다음과 같이 동적 속성을 사용하고자하는동적/사용자 정의 속성

PropType PropValue PropName 
-------- --------- -------- 
String  "William" "Name" 
Int64  "21"  "Age" 
String  "John"  "Name" 
Int64  "32"  "Age" 
String  "Brown"  "Haircolor" 
... 

I을 내가 이런 생각을 가진 사람이 처음이라고 생각하지 않아 구현 (poen source/nuget 등)을 찾고있다. 하지만 하나 찾는데 어려움이 있습니다.

내 질문은 : 거기에 사용할 수있는 (또는 필요한 경우 개선) 동적 properies의 구현은 무엇입니까?

편집 : richardtallent 포인터가 밖으로 나가서 EAV 패턴을 찾고 있습니다. 그래서 사용할 수있는 암시가 있습니까? 또는 나 스스로 무언가를 써야만 하는가? 나는 그것이 여러 번 전에 이루어 졌다고 생각할 것이다.

+0

LINQ-to-SQL을 사용해 보셨습니까? 찾고 계신 것이 맞습니까? –

답변

2

설명하는 내용을 흔히 "EAV"(Entity-Attribute-Value) 패턴이라고합니다.

많은 사람들이 관계형 데이터베이스에 적용 할 때 안티 패턴이라고 생각하는 이유는 관계형 데이터베이스를 사용하면 적절한 정규화 된 데이터와 효율적인 CRUD 작업을 유지하는 데 영향을 미치기 때문입니다. 그러나, 그것의 용도가있다.

이 테마의 변형은 Lotus Notes에서 Google BigTable에 이르는 No-SQL 데이터베이스에서 사용됩니다. 따라서 SQL Server를 사용하지 않는 경우 MongoDB와 같은 C#으로 액세스 할 수있는 No-SQL 데이터베이스를 살펴 보는 것이 가장 좋습니다.

전통적인 RDBMS로 직렬화되는 것을 찾고 있다면 오픈 소스 솔루션에 대해 잘 알고 있지 않습니다. C#에는 ExpandoObjects가 있지만이 시스템에 데이터베이스 직렬화/비 직렬화가 포함되어 있는지 여부는 알 수 없습니다.

+0

네 EAV가 내가 찾고있는 것 같아. 구체적으로는 EAV 패턴의 직렬화를 포함한 구현입니다. – user369117

1

4.0 버전부터는 Expando object : 동적으로 확장되고 축소되는 개체가 있습니다.

검색하려는 내용이 아닌 경우 명확히하십시오.