我有一个带有 NHibernate 数据访问层的 Web 应用程序。我有大量可以存储的用户首选项,这些主要是布尔值,例如注册对话框已被关闭且不应再次显示。
问题是,对于 NHibernate,我需要添加到我的数据库模式中,并在每次添加新对话框以注册时向持久类添加一个属性,无论它是否已被解除。
必须有更简单的方法。它是什么?
我有一个带有 NHibernate 数据访问层的 Web 应用程序。我有大量可以存储的用户首选项,这些主要是布尔值,例如注册对话框已被关闭且不应再次显示。
问题是,对于 NHibernate,我需要添加到我的数据库模式中,并在每次添加新对话框以注册时向持久类添加一个属性,无论它是否已被解除。
必须有更简单的方法。它是什么?
您可以使用设置表来存储首选项并为每个对话框添加一个值:
表设置 Id、UserId、DialogName、Value
1, 1, FirstDialog, 真
2, 1, SecondDialog, 假
3, 2, FirstDialog, 假
4, 2, SecondDialog, 假
另一种选择是阅读 Ayende 的这篇文章,基本上允许动态字段
许多应用程序中的一个共同主题是需要支持自定义/动态字段。换句话说,系统管理员可能决定客户需要一些不属于主线开发的附加字段。
另请阅读 Ayende 的最后评论
- 您可以将集合放在动态属性中。
- 您可以以编程方式编辑配置
编辑出于某种原因,我刚刚意识到我已经回答了这个问题已经超过一年了!不知道我是怎么来的!答案仍然是一个很好的答案