动态/自定义属性
我想用动态特性,这是这样的:动态/自定义属性
public class CustomProperty
{
public string PropType { get; set; }
public string PropValue { get; set; }
public string PropName { get; set; }
...
}
...,然后保存这些属性数据库,就像这样:
PropType PropValue PropName
-------- --------- --------
String "William" "Name"
Int64 "21" "Age"
String "John" "Name"
Int64 "32" "Age"
String "Brown" "Haircolor"
...
我不要以为我是第一个有这样的想法的人,所以我正在寻找一个实现(poen source/nuget等)。但我很难找到一个。
所以我的问题是:是否有一个可以使用(或改进,如果需要)的动态特性的实现?
编辑:由于richardtallent指针了,我正在寻找EAV模式。那么,是否有可以使用的实现?或者我必须自己写点东西。我认为之前已经做过很多次了。
您所描述的内容通常称为“EAV”(实体 - 属性 - 值)模式。
许多人认为它应用于关系数据库时反模式,因为使用它会影响维护正确的规范化数据和有效的CRUD操作。但是,它的确有其用途。
此主题的变体用于从Lotus Notes到Google BigTable的无SQL数据库。因此,如果您不想使用SQL Server,最好的办法可能是查看C#可访问的非SQL数据库,例如MongoDB。
如果您正在寻找序列化为传统RDBMS的东西,我不知道任何开放源代码解决方案。在C#中有ExpandoObjects,但我不知道该系统是否包含开箱即用的数据库序列化/反序列化。
是的,我认为EAV就是我正在寻找的东西。具体来说:包括序列化EAV模式的实现。 – user369117 2012-04-14 07:02:01
你有没有试过LINQ到SQL,如果这是你要找的东西? – 2012-04-14 06:11:11