2010-03-05 4 views
0

나는 엔터프라이즈 라이브러리 및 사용하기 시작했습니다 다음과 같은 질문이 :이 쿼리에 출력 매개 변수를 추가하려면 어떻게DatabaseFactory 및 출력 매개 변수는

1) 어떻게 내가 그것을 다시받을 수 있나요 :

public int InsertDoc(HDocument document) 
{   
    Database db = DatabaseFactory.CreateDatabase(); 
    int result; 
    var reader = db.ExecuteNonQuery("sp_InsertDocument", 
       document.AddedDate,document.AddedBy, document.Title))   
    . 
    . 
    . 
} 

을 db.AddOutParameter에는 DbCommand와 같은 Paremetrers가 필요합니다.

2) 데이터베이스 (ADO.net에서 전송)에서 저장 프로 시저를 사용하는 몇 가지 방법이 있습니다. 선언해야합니까? Database db = DatabaseFactory.CreateDatabase(); 그들 각각 또는 나는 그것을 재사용 할 수 있습니까?

답변

1

1) - 당신은 thusly 히 DbCommand 할 수 있습니다 :

DbCommand dbCommand = db.GetSqlStringCommand("sp_InsertDocument"); 

과와 실행 후 출력 매개 변수를 검색 :

여기
db.GetParameterValue(dbCommand, "outputParameterName"); 

출력과의 sproc를 실행 EntLib를 사용하는 좋은 예입니다 매개 변수 : http://www.devx.com/dotnet/Article/30910/0/page/4

2) - 각 메소드에서 DatabaseFactory.CreateDatabase()를 사용할 수 있습니다. EntLib은 필요에 따라 연결을 관리합니다. 메소드에서 db 변수를 한 번만 사용하는 경우 다음과 같이 변수를 선언하는 대신 인라인 임시 변수를 사용하여 코드를 간소화 할 수 있습니다 (예 :

var reader = DatabaseFactory.CreateDatabase().ExecuteNonQuery(.... 
).