我有一個使用nHibernate的小型POC應用程序。這是我第一次自己設置nHibernate,但之前我曾使用它。出於某種原因,我的查詢沒有返回任何數據。我可以確認我的數據庫中有一個Product
。流利的nHibernate不返回數據
public class NHibernateHelper
{
private static String _connectionString =
@"Server=localhost\SQLEXPRESS;Database=TestProject;User ID=TestProjectMvc;Password=Pa$$word";
private static ISessionFactory _sessionFactory;
private static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
InitializeSessionFactory();
return _sessionFactory;
}
}
private static void InitializeSessionFactory()
{
_sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(_connectionString).ShowSql()
).Mappings(m => m.FluentMappings.AddFromAssemblyOf<Product>())
//.ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
.BuildSessionFactory();
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
}
我的映射類:
public class ProductMap : ClassMap<Product>
{
public ProductMap()
{
Id(x => x.Id);
Map(x => x.Name);
References(x => x.Category).Column("CategoryId");
}
}
,我使用檢索數據的方法:
public IEnumerable<Product> GetAllProducts()
{
using (var session = NHibernateHelper.OpenSession())
{
var list = session.QueryOver<Product>().List();
return list;
}
}
您的映射和域對象在同一個程序集? –
@SimonWhitehead Ahh就是這樣......我改變了我的'Mappings'從'ProductMap'程序集加載,現在我看到了數據。謝謝!如果你想,發佈你的答案,我會標記爲這樣。 – gwin003