3

동료와 데이터 액세스 코드를 표준화하려고합니다. 앞서 언급 한 동료 중 한 명은 EntLib 데이터 액세스 블록이 저장된 proc 호출에 매개 변수를 캐시하려고 시도했다고 주장합니다.저장된 라이브러리에 엔터프라이즈 라이브러리 캐싱 매개 변수가 있습니까?

나는 반사경을 들여다 보았다. 그리고 그것들을 캐싱 할 수 있다는 증거가있다. 그러나 나는하지 않습니다 는 다음과 같은 상황에서라고 생각합니다.

public Dictionary<long, string> GetQueue(int maxItems) 
    { 
     var sq = new SqlDatabase(_connString.ConnectionString); 

     var result = new Dictionary<long, string>(); 

     using (var cmd = (SqlCommand)sq.GetStoredProcCommand("dbo.GetQueue")) 
     { 
      sq.AddInParameter(cmd, "maxItems", DbType.Int32, maxItems); 

      var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); 

      while (reader.Read()) 
      { 
       long id = reader.GetInt64(reader.GetOrdinal("id")); 
       string fileName = reader.GetString(reader.GetOrdinal("meta_data_filename")); 

       result.Add(id, fileName); 
      } 
     } 

     return result; 
    } 

누구든지이를 확인하거나 거부 할 수 있습니까? 내가 EntLib 4.1

+1

, 볼 수있는 반사판을 사용할 필요가 없습니다, EntLib는 모든 소스 코드와 함께 제공 . 소스를 설치하고 바로 실행할 수 있습니다. :) –

+0

좋은 점 감사합니다! 나는 그것을 체크 할 것이다. –

답변

3

그것의 definetly 사용을 사용하고

, 나는 밖으로 코드를 찢어 내 도서관에서 던졌다.

sp_help을 사용하고 출력을 구문 분석하여 데이터 유형을 판별했습니다.

요즘에는 코드를 찢어서, .Net에서 매개 변수를 추가하는 것이 훨씬 낫습니다. 귀하의 예제에서

cmd.Parameters.AddWithValue("@name",somevalue) 

는 reflectoring 유지의 ... 당신은이 경로 아래 이루어지고 찾을 수 GetStoredProcCommand()

당신은 다시 이미 매개 변수로 채워 Command 개체를 얻을 것이다

엔트 LIB 코드는 저작권,하지만 코드는 지금까지 내가 전화 할 수있는이

http://code.google.com/p/dbdotnet/source/browse/trunk/ParameterCache.cs

+0

Enterprise Library는 [Microsoft Public License] (http://msdn.microsoft.com/en-us/library/ff649118.aspx)에 따라 배포되므로 라이센스 제한에 따라 코드를 사용/복사/수정/배포 할 수 있습니다. (그것은 꽤 합리적 인 것처럼 보인다). –

2

거의 동일합니다 l 매개 변수를 캐시하지 않습니다. 데이터베이스 개체의 동일한 인스턴스를 사용하여 추적을 실행하는 동안 DiscoverParameters를 여러 번 호출했습니다. DiscoverParameters를 호출 할 때마다 [sys]. [sp_procedure_params_100_managed]를 볼 수 있으므로 매번 왕복 여행을하는 것처럼 보입니다. 이 괜찮을 수도처럼 여기

가 그건 너 자신을 수행하는 방법의 예를 보인다 그런데

http://davidhayden.com/blog/dave/archive/2006/11/03/CachingStoredProcedureParameters.aspx

+0

2006 년 기사 링크가 더 이상 작동하지 않습니다. – Firestrand

+0

archive.org : https://web.archive.org/web/20070210091538/http://davidhayden.com/blog/dave/archive/2006/11/03/CachingStoredProcedureParameters.aspx에 보관되어 있습니다. – hectorct

관련 문제