我对 NHibernate 有一个相当奇怪的错误。我在跨线程共享 ISession 时遇到错误,并通过提供我自己的 ADO.NET 连接解决了这个问题,例如:
IDbConnection connection = new SqlConnection(ApplicationConfiguration.ConnectionString);
connection.Open();
ISession session = _sessionFactory.OpenSession(connection);
session.FlushMode = FlushMode.Commit;
return session;
我的应用程序现在可以工作,但是所有带有集合的对象都被保存在数据库中,没有它们的集合。例如,假设一辆车有一个轮胎列表。然后我创建一辆车,然后根据数据库中已有的轮胎生成轮胎列表。保存汽车对象只会保存汽车而不是列表!
对我做错了什么有任何帮助吗?我正在使用 NHibernate 2.0,我确实调用了 Session.Flush() 和 Transaction.Commit()。
干杯。