2011-04-20 27 views
0

由于地图可以通过Enterlib 5.0如波纹管编写的代码,迭代LINQ表达式,并转换成的SqlParameter

.Map(p => p.ID).ToColumn("ID").Map(p => p.Version).ToColumn("ver") 

现在我要让AddInParameter具有相同的功能, 以一个数据库对象的exmple,看到

Database db=DatabaseManager.Create(); 
db.GetStoredProcCommand(“Stored procedure Name”); 

所以我想封装像这样参数的构造,

db.SetParamter("@Parameter1",value).SetParamter("@Parameter2",2) 
            .SetParamter("@Parameter3",3).Build(); 

设置db的params后,我们可以执行命令“db.ExecuteNonQuery();”

如何使用“Expression>”&将其转换为SQLParameter?

谢谢...

回答

0

扩大救援的方法!

(假设你正在使用ADO.NET的SqlClient)

public static class Extensions 
{ 
    public static Database SetParameter(this Database db, string name, object value) 
    { 
     if (db == null) throw new ArgumentNullException(); 

     DbCommand command = db.CurrentCommand; // or whatever 
     command.Parameters.AddWithValue(name, value); 

     return db; 
    } 
}