迭代Linq表达式并将其转换为sqlparameter

时间:2011-04-20 15:12:24

标签: c# .net linq

因为可以通过Enterlib 5.0编写地图代码,

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

现在我想让AddInParameter具有相同的功能, 以数据库对象为例,参见

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?

感谢...

1 个答案:

答案 0 :(得分: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;
    }
}