你可以爲每個配置使用不同的ClassMap類嗎?你可能不得不明確地將每個ClassMap添加到你的Fluent會話配置中,這會使它更加冗長,但這意味着你可以爲不同的數據庫使用不同的映射類。然後
public class BinaryFileMSSqlServer
{
public BinaryFile()
{
m.Map(x => x.BinaryData).CustomSqlType("varbinary(MAX)");
m.Map(x => x.ContentType);
m.Map(x => x.FileName);
m.Map(x => x.FileSize);
}
}
public class BinaryFileSQLite
{
public BinaryFile()
{
m.Map(x => x.BinaryData);
m.Map(x => x.ContentType);
m.Map(x => x.FileName);
m.Map(x => x.FileSize);
}
}
你流利的會話映射會是這個樣子:
Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005
.ConnectionString(c => c
.FromAppSetting("connectionString"))
.Cache(c => c
.UseQueryCache()
.ProviderClass<HashtableCacheProvider>())
.ShowSql())
.Mappings(m => m.FluentMappings
.Add<BinaryFileMSSqlServer>()
.Add<...>()
.Add<...>())
.BuildSessionFactory();
您需要在每個映射類的手工填寫。您還需要爲SQLite創建單獨的流暢配置,並在必要時使用SQLite特定的ClassMaps。