2012-04-14 2 views
0

私はこのように動的なプロパティを、使用したいダイナミック/カスタムプロパティ

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

Iを私はこのような考え方を最初に持っているとは思わないので、実装(poen source/nugetなど)を探しています。しかし、私は見つけにくいです。

私の質問です:使用可能な(または必要に応じて改善された)動的な特性の実装はありますか?

編集:richardtallentポインタが出ているので、私はEAVパターンを探しています。それで、それを使うことのできるインプラントはありますか?それとも自分で何かを書く必要がありますか?私はそれが以前何度も行われたと思います。

+0

あなたが探しているものなら、LINQ-to-SQLを試しましたか? –

答えて

2

あなたが記述していることは、しばしば "EAV"(Entity-Attribute-Value)パターンと呼ばれます。

多くの人は、リレーショナルデータベースに適用すると、適切な正規化されたデータと効率的なCRUD操作を維持する意味があるため、反パターンとみなします。しかし、それはその用途を持っています。

このテーマのバリエーションは、ロータスノーツからGoogle BigTableまでのNo-SQLデータベースで使用されています。したがって、SQL Serverの使用に縛られていない場合は、MongoDBなどのC#でアクセス可能なNo-SQLデータベースを調べるのが最善の方法です。

伝統的なRDBMSにシリアル化する何かを探しているなら、私はオープンソースのソリューションを意識していません。 C#にはExpandoObjectsがありますが、そのシステムにデータベースのシリアル化/デシリアライズが含まれているかどうかはわかりません。

+0

ええEAVは私が探しているものだと思います。具体的には、EAVパターンのシリアライズを含む実装。 – user369117

1

4.0のバージョンから始まるExpando objectがあります。動的に拡大/縮小するオブジェクトです。

これがあなたが探しているものでない場合は、明確にしてください。