0

원시 SQL 쿼리를 실행해야하지만 데이터베이스 연결을 열려고하면 오류가 발생합니다. "연결이 닫히지 않았습니다. 연결의 현재 상태가 열려 있습니다."EntityFrameworkCore, 원시 SQL 쿼리를 실행하려고하는데 오류가 발생합니다 : "연결이 닫히지 않았습니다. 연결의 현재 상태가 열려 있습니다."

_loginValidator 및 _contactService는 DI를 통해 컨트롤러에 전달된다 : 아래

services.AddScoped<ILoginValidator, LoginValidator>(); 
services.AddScoped<IContactService, ContactService>(); 

두 라인은 제어부의 작용 기능에있다. 나는 두 줄을 전환 경우, 오류가 ... 도망 간다 :

여기
var validationErrors = _loginValidator.Validate(id, ""); 

var user = _contactService.GetContact(id); 

이 _loginValidator.Validate입니다. 내가 두 번째 줄을 주석 경우 는 오류가 ... 멀리 간다 : 여기

public LoginValidationResult Validate(int userId, string encryptedPassword) 
{ 
    var vr = new LoginValidationResult(); 

    var user = _context.Users.Include(u => u.LoginUserQuestionAnswers).FirstOrDefault(u => u.Id == userId); 

    //... 
} 

이 _contactService.GetContact입니다.

public ContactDto GetContact(int id) 
{ 
    var conn = _context.Database.GetDbConnection(); 

    //ERROR HERE!!! 
    conn.Open(); 

    //work on conn, for example: ExecuteReader 

    conn.Close(); 
} 

참고 : 나는 유효성 검사 (...) 함수에서 _context 라인을 주석 경우

  • , 나는 오류가 발생하지 않습니다 나는 오류 어디서 이입니다.
  • 조치 기능에 나열된 두 줄을 전환하면 오류가 발생하지 않습니다.

나는 문제가 EntityCore가 _loginValidator.Validate에서 나는 그것을 사용을 마친 후 연결 (...)

누구든지 내가이 문제를 해결할 수있는 방법을 알고 폐쇄되지 않는 것입니다 생각하십니까?

+1

어디에서 연결을 닫으시겠습니까? – Sparrow

답변