Я работаю над проектом, который смотрит на базу данных, созданную Mirth Connect v3.Building Fluent NHibernate Maps at runtime
В этой версии таблицы создаются во время выполнения на основе созданных каналов.
Например, если я создаю новый канал, он создает запись в таблице с уникальным идентификатором. Затем, используя этот идентификатор, создается набор таблиц с указанным идентификатором в конце имени. т.е. для канала с id 8, создается таблица, называемая d_ms8 (среди прочего).
Все эти таблицы (d_ms *) имеют одинаковую структуру.
Что мне интересно, есть ли способ сопоставить подобные вещи в Fluent NHibernate.
public class MapChannelStats : ClassMap<ChannelStatsObj>
{
public const String TableName = "d_ms8";
public MapChannelStats()
{
Table(TableName);
Id(x => x.MetadataID).Column("metadata_id");
Map(x => x.ServerID).Column("server_id");
Map(x => x.Errored).Column("error");
Map(x => x.ErroredLifetime).Column("error_lifetime");
Map(x => x.Filtered).Column("filtered");
Map(x => x.FilteredLifetime).Column("filtered_lifetime");
Map(x => x.Received).Column("received");
Map(x => x.ReceivedLifetime).Column("received_lifetime");
Map(x => x.Sent).Column("sent");
Map(x => x.SentLifetime).Column("sent_lifetime");
}
}
Спасибо,
Брюс.
Hello David. Спасибо, но, к сожалению, это база данных, которую я не контролирую. Вот почему это боль. –
Я подозреваю, что мне придется использовать другую технологию для этой части. Возможно, LINQ. –
Я вижу. В этом случае, я думаю, вам, возможно, придется использовать простые SQL-запросы. –