Одно из моих приложений - общедоступный веб-сайт, другое - интранет. Общедоступный веб-сайт работает с использованием пользователя с ограниченной защитой, который должен обращаться к определенной таблице через представление, тогда как интрасеть может обращаться к самой таблице.
Кажется, что это было бы довольно просто настроить с помощью Fluent NHibernate. В моей ClassMap я мог бы сделать проверку, как это:
public class MyEntityClassMap : ClassMap<MyEntity>
{
public MyEntityClassMap()
{
if (NHibernateConfig.Current.Context == "intranet")
Table("t_MyEntity");
else
Table("v_MyEntity_pub");
... etc
}
}
Есть ли простой способ сделать это для встроенных файлов hbm? Единственный способ, о котором я могу подумать, - это иметь две копии файла hbm, что может привести к путанице и далеко от идеала.
Возможно, есть лучший способ достичь того же результата?