- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 NHibernate + Fluent 来处理我的应用程序中的数据库。到目前为止,我一直在使用 SessionSource 来创建我的 ISession 对象。我现在对来自 NHibernate 或 Fluent 的内容以及我真正应该用于创建我的 session 的内容感到有点困惑。
ISession 来自 NHibernate,SessionSource 来自 Fluent。我从 FluentConfiguration 创建 SessionSource,目前使用 SessionSource 创建 session 。这是我创建 session 的功能。 FluentConfiguration 和 SessionSource 被重用:
if (_sessionSource == null)
{
_cfg = Fluently.Configure().Database(SQLiteConfiguration.Standard.ShowSql().UsingFile("test.db"));
_sessionSource = new SessionSource(_cfg.BuildConfiguration().Properties, new MappingsPersistenceModel());
var session = _sessionSource.CreateSession();
_sessionSource.BuildSchema(session);
return session;
}
return _sessionSource.CreateSession();
这看起来合理吗?不过,使用 ISessionFactory 创建 session 听起来更有吸引力,所以我尝试使用一个。这来自 NHibernate,所以我不知道这是否是问题的原因,但是当我的 session 是从 ISessionFactory 创建时它失败了。
// Done once:
_sessionFactory = _cfg.BuildSessionFactory();
// Done each time a session is requested:
_sessionFactory.OpenSession()
使用这个我在使用 session 时得到一个 MappingException
,说“No persister for: MyProject.Model.SomeModelClass”。
我应该继续使用 SessionSource 吗?还是我遗漏了有关 ISessionFactory 的内容?
最佳答案
问题似乎是 SessionFactory 不知道映射,因为它们只提供给 SessionSource。在流畅的配置过程中添加映射并从中获取工厂似乎有所帮助。这给了我一个看起来更好的解决方案。对于那些对此有更多经验的人来说,这看起来合理吗?
private static ISession CreateSession()
{
if (_sessionFactory == null)
{
_sessionFactory = Fluently.Configure().
Database(SQLiteConfiguration.Standard.ShowSql().UsingFile("test.db")).
Mappings(m => m.FluentMappings.AddFromAssemblyOf<MappingsPersistenceModel>()).
BuildSessionFactory();
}
return _sessionFactory.OpenSession();
}
关于c# - 流利;用于创建 session 的 SessionSource 或 SessionFactory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2019492/
1)任何人都可以清楚地解释 SessionSource 的用途,为什么我要使用它而不是 Fluently.Configure(....BuildSessionFactory()? 2) Persist
我正在使用 NHibernate + Fluent 来处理我的应用程序中的数据库。到目前为止,我一直在使用 SessionSource 来创建我的 ISession 对象。我现在对来自 NHibern
我是一名优秀的程序员,十分优秀!