Asp.net 数据库工厂和输出参数

Asp.net 数据库工厂和输出参数,asp.net,enterprise-library,Asp.net,Enterprise Library,我已开始使用企业库,并有以下问题: 1) 如何将输出参数添加到此查询以及如何将其取回: public int InsertDoc(HDocument document) { Database db = DatabaseFactory.CreateDatabase(); int result; var reader = db.ExecuteNonQuery("sp_InsertDocument", document.

我已开始使用企业库,并有以下问题:

1) 如何将输出参数添加到此查询以及如何将其取回:

public int InsertDoc(HDocument document)
{          
    Database db = DatabaseFactory.CreateDatabase();  
    int result;
    var reader = db.ExecuteNonQuery("sp_InsertDocument", 
                document.AddedDate,document.AddedBy, document.Title))         
     .
     .
     .
}
AddOutParameter需要Paremeters,而我没有类似于DbCommand的Paremeters

2) 我有一些处理数据库(我从ADO.net传输)存储过程的方法, 我是否必须声明:Database db=DatabaseFactory.CreateDatabase();在它们中的每一个中,或者我可以重复使用它?

1)-您可以这样创建一个DbCommand:

DbCommand dbCommand = db.GetSqlStringCommand("sp_InsertDocument");
并在执行后使用以下命令检索输出参数:

db.GetParameterValue(dbCommand, "outputParameterName");
下面是一个使用EntLib执行带有输出参数的存储过程的好例子:

2) -可以在每个方法中使用DatabaseFactory.CreateDatabase(),这很好。EntLib将根据需要管理连接。 另外,如果在方法中只使用一次db变量,则可以使用内联临时变量而不是声明变量来稍微简化代码,即:

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