gpt4 book ai didi

c# - nHibernate HQL - 实体未映射

转载 作者:可可西里 更新时间:2023-11-01 07:47:35 24 4
gpt4 key购买 nike

我有我的 nHibernate 设置并且可以正确地使用 QueryOver 来处理大多数查询,但是,每当我尝试执行 HQL CreateQuery 时,我都会收到实体未映射的异常。我可以使用 QueryOver 确认同一个实体工作正常。

注意:我使用的是 fluent nHibernate

有什么想法会导致这种情况吗?

最佳答案

如果您在映射中禁用了自动导入 (<hibernate-mapping auto-import="false">),那么您将不得不在查询中的任何地方使用完全限定的类名,不合格的类名将不起作用。

否则,启用自动导入。

Conventions.Setup(x =>
{
x.Add(FluentNHibernate.Conventions.Helpers.AutoImport.Always()); // AutoImport.Never
}); // End FluentMappings.Conventions.Setup

像这样:

/*
var model = AutoMap.AssemblyOf<MyDb>()
.Where(t => t.Namespace.StartsWith("MyDb.Tables"))
.Conventions.AddFromAssemblyOf<MyDb>();
*/




protected static AutoPersistenceModel CreateMappings()
{
//return new AutoPersistenceModel().AddMappingsFromAssemblyOf<MyDB.Tables.T_Admin>();

return new AutoPersistenceModel().AddMappingsFromAssemblyOf<MyDb.Tables.T_Admin>()
.Where(t => t.Namespace == "MyDb.Tables");
}

private static ISessionFactory CreateMsSqlSessionFactory()
{
//AutoPersistenceModel model = CreateAutoMappings();
AutoPersistenceModel model = CreateMappings();

return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005
.ConnectionString(c => c
//.Server("MYCOMPUTER\\SQLEXPRESS")
.Server("localhost")
//.Database("testdb")
.Database("nhDMS")
.Username("TableCreatorWebServices")
.Password(DB.Tools.Cryptography.AES.DeCrypt("AES_ENCRYPTED_PW"))))
//.Mappings(m => m.FluentMappings.AddFromAssemblyOf<SsoToken>())
.Mappings(m =>
{
m.AutoMappings.Add(model);
m.FluentMappings.Conventions.Setup(x =>
{
//x.AddFromAssemblyOf<MyDb.Tables.T_Admin>();
x.Add(FluentNHibernate.Conventions.Helpers.AutoImport.Always()); // AutoImport.Never
}); // End FluentMappings.Conventions.Setup
}

) // End Mappings
.ExposeConfiguration(BuildSchema) // BuildSchema function call...
.BuildSessionFactory();
} // End Function CreateMsSqlSessionFactory

关于c# - nHibernate HQL - 实体未映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6577428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com