2011-03-13 5 views
0

나는 예를 들어, 내가 오랫동안 뭔가를 쓸 수 있도록하려면형식화 된 SqlParameter에의는

private static void Update(int id, string lname) 
{ 
    new RememberEntities().ExecuteStoreCommand(
    @" UPDATE Users 
      SET lname = @lname 
      WHERE Id = @id", 
    new SqlParameter("lname", lname), new SqlParameter("id", id)); 
} 

더 형식화 된 버전으로 SqlParameter 다음 사용을 변경할의 라인 :

private static void Update(int id, string lname) 
{ 
    new RememberEntities().ExecuteStoreCommand(
    @" UPDATE Users 
      SET lname = @lname 
      WHERE Id = @id", 
    new SqlParameterString("lname", lname), new SqlParameterInt("id", id)); 
} 

SqlParameterString()의 두 번째 매개 변수는 SqlParameterInt()의 경우 문자열과 int을 취합니다. 난 SqlParameter, 아아, 서브 클래 싱하여 내 자신을 만들려고했는데 sealed 그래서 거기에 행운이 없습니다.

제가 권장하는 EF apprach가 궁금합니다.

답변

2

형식화 된 팩터 리 메서드를 만들고 사용할 수는 있지만 실제로 SqlParameter 생성자를 직접 사용할 수는 없습니다 (SqlParameter이 봉인되지 않아도이 문제가 발생합니다. 사용자가 직접 래퍼 메서드를 만들 수 있습니다. 그러한 경우).

+0

네, 맞습니다. 공장 방법으로 트릭을 수행 할 수 있습니다. 나는 더 나은 대안을 기대했다 :) –

1

스칼라 값을 반환하는 저장 프로 시저를 사용할 수 있으며 EF 4.0을 사용하면 '함수 가져 오기'를 추가 한 다음 C# 함수처럼 저장 프로 시저를 실행할 수 있습니다.

+0

좋은 생각, 비록 내가 싫어하는 절차를 저장 :-) –

관련 문제