我目前正在通过静态调用(例如
)设置会话配置SessionConfiguration.GetSessionConfiguration();
上述方法返回已配置的ISessionFactory:
public static ISessionFactory GetSessionConfiguration()
{
return Fluently.Configure()
.Database(MsSqlConfiguration
.MsSql2005
.ConnectionString(/*...*/)
.ShowSql()
.CurrentSessionContext<WebSessionContext>())
.Mappings(/*etc*/)
.BuildSessionFactory();
}
我正在研究的部分是“CurrentSessionContext&lt;&gt;”。我希望能够根据调用它的应用程序来设置它。大多数情况下,这个库是通过Web应用程序访问的,所以上面的工作正常。但是,最近我需要在控制台应用程序中使用此层,其中CallSessionContext似乎更合适。
是否可以传递ICurrentSessionContext以供使用?
我尝试过以下方面:
public static ISessionFactory GetSessionConfiguration<ICurrentSessionContext>
或
public static ISessionFactory GetSessionConfiguration<TSessionContext>
但还没有运气。
非常感谢任何帮助!
答案 0 :(得分:2)
这可以使用“where constraints”。
即:
ISessionFactory GetSessionConfiguration<T> where T : ICurrentSessionContext
调用时,您可以执行以下操作:
SessionConfiguration.GetSessionConfiguration<CallSessionContext>();