Fluent NHibernate를 사용하여 액세스하는 MySQL 데이터베이스를 사용하고 있고 Ninject와 같은 Session-Per-Request를 유선처럼 사용하고 있습니다. 그래서 :MySql, Ninject 및 NHibernate - 먼저이 연결과 관련된 열려있는 DataReader가 있습니다. 먼저 닫아야합니다.
Kernel.Bind<ISession>()
.ToMethod(context => Kernel.Get<ISessionFactory>().OpenSession())
.InRequestScope();
나는 OnDeactivation(x=>x.Dispose());
을 가지고 있지만 Ninject에 당신을 위해 폐기를 호출로 필요하지 않습니다 말씀 드리 지요했다.
내가 읽는 링크를 두 번 클릭하면 "이 연결과 관련된 열려있는 DataReader가 먼저 닫혀 있어야합니다."라는 메시지가 나타나면 모든 것이 잘 작동합니다.
MARS (Multiple Active Record Sets)를 활성화해야한다고 읽었지 만, MySQL에서는이를 지원하지 않습니다.
이 오류를 없애기 위해 할 수있는 일이 있습니까?
어떻게 ISessionFactory가 유선입니까? 거래를 사용하고 있습니까? –
아니요, 저는 각 저장소 내부의 트랜잭션과 함께 일반 저장소를 사용하고 있습니다. 전체 요청에 대해 어떻게 트랜잭션을 사용합니까? –
'ISessionFactory'에 대한 바인딩은 어디에 있습니까? – Aaronaught