2009-12-10 17 views
0

性质我有一种情况,我有键/值的属性包,将看起来像:地图动态/通用与NHibernate

Entry 1 : key="Load", value="2", type="int" 
Entry 2 : key="DailyStatus", value="0", type="bool" 

我试图找出是否有可能与NHibernate映射这些值添加到单个表中,稍后我可以将其导入.net简单类型。

我试图避免创建类包含所有这些数据,因为它可以是非常重复,并且不允许应用程序的部分要尽可能地灵活。我曾考虑将它存储为XML或JSON,但这些数据必须定期查询。

有没有人映射到表简单类型的词典中NHibernate和拉数据回来了?我想映射到一个通用的字典将工作:

IDictionary<string, IDictionary<object, Type>> 

我可以自己动手完成,但如果有一个NHibernate的一个内建的方式来完成它,这将是更容易。

+0

你要存储在运行时定义,或者是他们都在编译时定义的一组S型?它们仅限于.net基本类型(即IConvertible)还是其他可能的?你使用哪个数据库? (我怀疑你想要做什么可能取决于这些问题的答案,但它是一个不平凡的解决方案,因此我首先要问) – fostandy 2009-12-10 15:58:22

+0

它们都是在编译时提前知道的。目前,他们都可以使用iconvertible,虽然这可能会改变,但我现在假设他们都是.net简单的类型。大多布尔和整数 – 2009-12-10 18:12:59

+1

忘记数据库:MsSql2005。可能是2008年,但在这一点上,我们假设它将是2005年。在这张纸上它应该真的很重要,因为我们正在使用nhibernate。忘了提及我们也使用nhibernate linq扩展 – 2009-12-10 18:42:01

回答

1

如何创建一个类“三胞胎”与attriutes ID,键,值,类型,然后将其映射到一个名为任何你想要的表?

+0

,将工作,但我怎么能知道什么样的NHibernate基础类型的记录?当我访问字典项目时,我想获得简单类型。也许使用泛型? 我想这需要铸造类型值 – 2009-12-10 14:45:48

+0

你的意思是你所拥有的三联类的“类型”属性。也许你可以将一个Triplet类映射到一个私有字段,然后将一个通用字典作为公有。您可以使用某种工厂从专用字段填充此字典,也可以在Tripplet的“type”属性上添加switch语句。您将不得不跟踪更改,以便您可以将条目推入/拉入专用字段。我正在做类似的事情,除了我将整个对象图序列化为私有字段。 – epitka 2009-12-10 15:24:33