gpt4 book ai didi

c# - NHibernate ClassMap 代码未执行

转载 作者:太空宇宙 更新时间:2023-11-03 11:20:03 24 4
gpt4 key购买 nike

我正在建立一个新项目,并让 NHibernate 与 structuremap 一起工作……差不多。我正在使用 NHibernate.Mapping.ByCode.Conformist 设置和 ClassMaps。没有发生错误,但是当我查询 session 并且数据库中存在特定类型的记录时,没有任何结果。经过进一步检查,我为这些类型设置的映射似乎没有执行。这是我为结构图连接事物的代码。我可以确认它正在执行。

public class OrmRegistry : Registry
{
public OrmRegistry()
{
var sessionFactory = BuildSessionFactory();
For<ISessionFactory>().Singleton().Use(sessionFactory);
For<ISession>().HybridHttpOrThreadLocalScoped().Use(s => sessionFactory.OpenSession());

}

public ISessionFactory BuildSessionFactory()
{
var cfg = new Configuration().DataBaseIntegration(db =>
{
db.ConnectionStringName = "LocalSqlServer";
db.Dialect<MsSql2008Dialect>();
db.Driver<SqlClientDriver>();
db.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;
db.IsolationLevel = IsolationLevel.ReadUncommitted;
db.BatchSize = 500;
}).AddAssembly(Assembly.GetExecutingAssembly());

if(HttpContext.Current != null)
{
cfg.CurrentSessionContext<WebSessionContext>();
}
else
{
cfg.CurrentSessionContext<ThreadStaticSessionContext>();
}
return cfg.BuildSessionFactory();
}
}

我几乎可以肯定我在这里遗漏了一些非常明显的东西,但我已经看了几个小时但没有取得任何成功。我前几天也被裁员了,所以我周围没有同事看。

最佳答案

看起来你的配置已经初始化了,但是映射呢?您需要像这样初始化映射(如果您使用约定):

var mapper = new ConventionModelMapper();

// TODO: define conventions here using mapper instance

// just an example on how I have been using it
var entities = ... // get all entity types here
cfg.AddDeserializedMapping(mapper.CompileMappingFor(entities), "MyMappings");

return cfg.BuildSessionFactory();

另一个例子,如果你正在使用映射类(来自 post ):

var mapper = new ModelMapper();
var mappingTypes = typeof (InvoiceMapping).Assembly.GetExportedTypes()
.Where(t => t.Name.EndsWith("Mapping")).ToArray();
mapper.AddMappings(mappingTypes);

cfg.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());

return cfg.BuildSessionFactory();

关于c# - NHibernate ClassMap<T> 代码未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347626/

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