2010-03-05 93 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需要paremetrers,我沒有像DbCommand一樣。我有幾個方法可以使用數據庫(我從ADO.net轉移)存儲過程, 我必須聲明:Database db = DatabaseFactory.CreateDatabase();在他們中的每一箇中,或者我可以重複使用它?

回答

1

1) - 你可以讓正是如此一個的DbCommand:

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

,並執行後,檢索輸出參數:

db.GetParameterValue(dbCommand, "outputParameterName"); 

下面是使用EntLib執行與輸出一個存儲過程的一個很好的例子params: http://www.devx.com/dotnet/Article/30910/0/page/4

2) - 你可以在每個方法中使用DatabaseFactory.CreateDatabase(),沒關係。 EntLib將根據需要管理連接。另外,如果你只在方法中使用db變量,那麼你可以通過使用內聯temp而不是聲明變量來簡化你的代碼,即:

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