我正在使用 Fluent NHibernate。我有一些使用相同数据库的应用程序(主要是应用程序本身,以及它的配置和报告工具,它们是单独的 .exe)它们现在共享相同的映射,在 common .dll 中流畅地定义。它们之间的最大区别在于它们使用数据库的某些部分非常不同。有些表对于一种工具是只读的,但对于另一种工具是可读写的。我想确保该工具永远不会将数据写入“错误”表。
我的想法是让每个工具的每个映射都有点不同。映射的一般基础是相同的,但我可以添加扩展方法来检查运行映射配置的工具的名称,并为每个工具添加不同的映射规范:
- 对于某些工具,我希望某些表为 .ReadOnly() (mutable="false")
- 我想为每个工具以不同的方式关闭/打开级联。
但我有点不确定,我是否认为正确。有什么陷阱吗?有没有更好的方法来实现这一点?