ASP.NET MVC 4 Razor 프로젝트의 데이터 바인딩 및 기타 데이터 조작을 위해 ADO.NET 엔터티 모델을 사용하고 있습니다.ASP.NET MVC 프로젝트의 ADO.NET 엔터티 모델에 대해 이미 열려있는 DataReader
나는이 같은 데이터 바인딩, 내 모델에서, 노력하고있어 내 Controller
: 나는 라인 (26)에 도달
:
26. Sender = db.GetLoginByUserId(item.sender_id).FirstOrDefault(),
27. Receiver = db.GetLoginByUserId(item.recv_id).FirstOrDefault(),
을 나는 그런 받고 있어요 오류 :
{ "이 연결과 관련된 열린 DataReader가 이미 있습니다. 먼저 닫아야합니다."}
실제로 ADO.NET 엔터티가 너무 자동으로 DataReader 또는 연결을 닫기위한 여는 내용을 정의하지 않았기 때문에 수동으로 닫는 방법을 이해할 수 없습니다. GC가 쓰레기를 collectiing 때
15. var currentUserId = db.GetUserIdByLogin(Request.Cookies["user-name"].Value);
그리고 연결/DataReader를을 열 않는 엔티티 모델 만 중괄호 }
기호 후에 제거 :
나는이 때문에 15 번째 라인이 될 수 있다고 생각 .
단일 메서드에서 하나만 호출 할 수있는 것처럼 보이지만 Entity 모델에서 더 많은 호출을 원한다면 어떻게 수행 할 수 있습니까?
감사합니다.
나는 컨트롤러 코드의 소스 코드를 http://ideone.com/jE6Ps1로 바꾸었다. 데이터는 예외없이 꽤 잘 묶여있다. 조언 주셔서 감사합니다, 마크,하지만 새 코드가 매우 못 생겼다고 생각합니다. (엔티티 모델이 너무 기발한가요? –