【发布时间】:2011-04-25 00:41:12
【问题描述】:
我正在尝试使用 FluentNHibernate 将 IPostLoadEventListener 的实现添加到我的 NHibernate 配置中。我可以这样做:
how to add event listener via fluent nhibernate?
但是,创建一个新数组来替换旧数组会完全丢弃任何现有的事件侦听器。我可以这样解决:
return Fluently.Configure()
.Database(config)
.Mappings(m => m.AutoMappings.Add(mappings))
.ExposeConfiguration(cfg =>
{
cfg.EventListeners.PostLoadEventListeners =
new IPostLoadEventListener[] {
new UtcDateEventListener(),
new DefaultPostLoadEventListener() // <<< this one is the default
};
cfg.EventListeners.SaveOrUpdateEventListeners =
new ISaveOrUpdateEventListener[] {
new UtcDateEventListener(),
new DefaultSaveOrUpdateEventListener() // <<< this one is the default
};
})
.BuildConfiguration()
.BuildSessionFactory();
但我只能通过单步执行代码来确定我要覆盖的内容来了解默认事件侦听器。我想在不覆盖任何现有事件侦听器的情况下添加我的事件侦听器,但是对我来说,像上面显示的那样这样做似乎很臭。现有的事件侦听器以数组的形式公开(而不是更有意义的集合或列表)。有没有更清洁的方法来处理这个问题?
【问题讨论】:
-
不过,这是一篇旧文章,但我在这里找到了一个有趣的链接:codebetter.com/petervanooijen/2015/04/13/…
标签: nhibernate