这是我的映射类:
class MyTableMap : ClassMap<MyTable>
{
public MyTableMap()
{
Schema("mySchema");
Id(x => x.id);
Map(x => x.SomeString);
}
}
这对于我的第一个数据库中的表([mySchema]。[MyTable])很好。
但是这个表(“ MyTable”)存在于(实际上很多)不同的数据库中,但是由于任何原因,该模式总是被命名为不同的(对此我没有任何控制权):
因此,在数据库“ OtherDB”中,表[SomeOtherSchema]。[MyTable]与第一个数据库中的[mySchema]。[MyTable]具有相同的结构。
出于明显的原因,我不想为每个数据库创建不同的映射类。
所以:有没有一种方法可以更改映射类的架构,所以我只需要创建一个映射类(无需使用singelton!)?
答案 0 :(得分:19)
似乎我必须使用“ DefaultSchema”。因此,我使用了以下映射代码:
use [database];
构建sessionFactory时,必须设置DefaultSchema:
class MyTableMap : ClassMap<MyTable>
{
public MyTableMap()
{
Id(x => x.id);
Map(x => x.SomeString);
}
}