Dapper.Net 및 DataReader

.net dapper dapper-extensions exception sql

문제

나는 dapper와 매우 이상한 오류가있다 :

이 명령과 관련된 열려있는 DataReader가 이미 있으므로 먼저 닫아야합니다.

하지만 DataReader를 사용하지 않습니다! 난 그냥 내 서버 응용 프로그램에서 선택 쿼리를 호출하고 첫 번째 결과를 가져 가라.

    //How I run query:
    public static T SelectVersion(IDbTransaction transaction = null)
    {
        return DbHelper.DataBase.Connection.Query<T>("SELECT * FROM [VersionLog] WHERE [Version] = (SELECT MAX([Version]) FROM [VersionLog])", null, transaction, commandTimeout: DbHelper.CommandTimeout).FirstOrDefault(); 
    }

    //And how I call this method:
    public Response Upload(CommitRequest message) //It is calling on server from client
    {
            //Prepearing data from CommitRequest

            using (var tr = DbHelper.DataBase.Connection.BeginTransaction(IsolationLevel.Serializable))
            {
                int v = SelectQueries<VersionLog>.SelectVersion(tr) != null ? SelectQueries<VersionLog>.SelectVersion(tr).Version : 0; //Call my query here
                int newVersion = v + 1; //update version

                //Saving changes from CommitRequest to db
                //Updated version saving to base too, maybe it is problem?

                return new Response
                {
                    Message = String.Empty,
                    ServerBaseVersion = versionLog.Version, 
                };
            }
        }
    }

그리고 슬프게도이 예외가 임의의 시간에 나타나는 것을 나는 두 클라이언트의 서버에 동시에 액세스 할 때 어떤 문제가 있다고 생각합니다.

도와주세요.

인기 답변

모델과 데이터베이스 스키마가 일치하지 않고 Dapper 내부에서 예외가 발생하는 경우 이러한 상황이 발생합니다.

정말로 이것을 원한다면, 가장 좋은 방법은 프로젝트에 dapper 소스를 포함시키고 디버깅하는 것입니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.