从外部程序集调用Fluent Hibernate时没有返回所需的配置
本文关键字:返回 配置 调用 程序集 Fluent Hibernate 从外部 | 更新日期: 2023-09-27 18:15:11
我有一个nHibernate基类,并有函数返回会话如下:
private static ISession OpenMySession()
{
var configuration = new Configuration();
return Fluently.Configure(configuration)
.Mappings(cfg => {
cfg.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly());
}).BuildConfiguration().BuildSessionFactory().OpenSession();
}
我在另一个项目中有域类。打开会话后,当我试图获得数据,它返回空值每次当我从外部应用程序调用:
public static IList<T> GetOjectList<T>() where T : class
{
IList<T> list;
try {
ICriteria criteria = session.CreateCriteria<T>();
list = criteria.List<T>();
}
catch (Exception ex) {
throw;
}
return list;
}
如果我使用会话的CreateSQLQuery函数运行标准SQL语句,我将获得结果集。
我在同一个程序集中定义了一个域类和映射,我正在使用上面的函数获取对象数据。
我假设当我从这个程序集外部调用这个函数时,Fluent无法解析命名空间。请帮我解决这个问题。
我认为你应该使用Assembly.GetEntryAssembly(),如果你想从启动项目而不是Assembly.GetExecutingAssembly()加载映射。GetExecutingAssembly ()"获取包含当前正在执行的代码的程序集",因此它将始终是基类所在的程序集。