#c# #.net #linq
#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 мы можем выполнить команду «db.ExecuteNonQuery();»
Как я могу использовать «Выражение>» и преобразовать его в SqlParameter?
Спасибо…
Ответ №1:
Методы расширения на помощь!
(Предполагая, что вы используете 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;
}
}