![]() |
1
6
我已经在fluent映射文件中使用(我自己的)属性来指定实体所属的数据库,从而实现了这一点。我还有一个“默认”数据库的概念,假设没有属性的映射文件位于默认数据库中(这可能会减少需要修饰的类的数量)。 然后我得到了初始化代码,它为每个数据库创建一个会话工厂,并为每个数据库使用反射来查找所有类映射类,检查属性以确定它属于哪个数据库,并相应地注册每个类映射。 映射文件示例:
显然,我已经定义了一个被引用/使用的数据库列表。
我在这里问过我的问题: How to identify a particular entity's Session Factory with Fluent NHibernate and Multiple Databases |
![]() |
2
5
这样做的简单方法是将数据库名称放入模式中
然后,如果可以在同一个连接字符串上访问所有表,则只需要一个会话工厂 |
![]() |
3
1
也可以按类型筛选。这是一行来自“green field”autopersistencemodel的注释代码,我在与“brown field one”(两个数据库)相同的程序集中使用。但我只需要筛选一种类型,所以我不必费心拆分遗留程序集。如果每个数据库都有很多,那么按程序集拆分可能是imo的最佳选择。 如果fnh能够提供某种内置的multi-db支持,那就太酷了,但我不知道如何才能真正做到这一点;某种sessionfactories字典也许可以,但每种情况都是如此独特。
HTH
|
![]() |
4
0
|
![]() |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
![]() |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 3 年前 |
|
Dansih · .Net核心自定义身份验证方案 3 年前 |
![]() |
lolorekkk · 面板插入。NET WinForm 3 年前 |