나는 Customer와 Account라는 두 개의 엔티티를 가지고있다. 고객은 많은 계정을 가지고 있습니다.NHibernate - 로딩 콜렉션에 대한 불법적 접근
고객에 대한 나의 매핑은 다음과 같습니다
<bag cascade="all" name="Accounts" table ="Accounts" mutable="true" inverse="true">
<key>
<column name="Customer_Id" />
</key>
<one-to-many class="Account, POCOEntities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bag>
계정에 대한 나의 매핑은 다음과 같습니다
var customer = _customerRepository.GetById(custID);
:
내 응용 프로그램에서<many-to-one cascade="all" class="Customer, POCOEntities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="Customer">
<column name="Customer_Id" />
</many-to-one>
, 내가 그들의 ID를 기반으로 고객을 검색 그런 다음 고객에게 첫 번째 계정을 가져 오려고 시도합니다.
"NHibernate.LazyInitializationException :로드 컬렉션에 대한 불법적 인 접근"나는이 문제를 여기에 게시하지만 아무것도 작동하지 않습니다에 대한 다른 솔루션을 시도했습니다 (3210)
Account account = customer.Accounts.FirstOrDefault();
나는 다음 예외가 발생합니다.
var acc = from a in _accountRepository.GetAll()
where a.Customer.Equals(customer)
select a;
모든 나는 위의 코드에서 수행 한 내가조차 사용하지 않는 변수를 만들 수 있습니다 : 무슨 정말 이상한 것은 내가 계정에 액세스하려고 직전에 내가 다음 코드를 삽입하면 다음 모든 작품입니다. 어떻게 든 그것은 "Account account = customer.Accounts.FirstOrDefault();"문을 발생시킵니다. 성공하기.
누구에게 무슨 일이 일어나고 있는지 아이디어가 있습니까?
"변경 가능"속성을 제거하려고 시도 했습니까? – mathieu