MVC3 アプリケーションがあり、コマンド オブジェクトを構築するメソッドにモデルを渡したいと考えています。その理由は、コマンド オブジェクトを使用するメソッドがたくさんあり、コードをより適切に記述したいからです。
private static SqlCommand CommandObj(vw_UserManager_Model model)
{
SqlCommand command = new SqlCommand();
command.CommandType = CommandType.StoredProcedure;
foreach (var item in model)
{
switch (property.PropertyType.Name)
{
case "String":
command.Parameters.Add("@" + property.Name, SqlDbType.VarChar).SqlValue = property;
break;
case "Guid":
command.Parameters.Add("@" + property.Name, SqlDbType.UniqueIdentifier).SqlValue = property;
break;
case "Int32":
command.Parameters.Add("@" + property.Name, SqlDbType.Int).SqlValue = property;
break;
case "Boolean":
//switch (property.Name.FirstOrDefault())
//{
// case true:
// command.Parameters.Add("@isactive", SqlDbType.Bit).SqlValue = 1;
// command.Parameters.Add("@isapproved", SqlDbType.Bit).SqlValue = 1;
// break;
// case false:
// command.Parameters.Add("@isactive", SqlDbType.Bit).SqlValue = 0;
// command.Parameters.Add("@isapproved", SqlDbType.Bit).SqlValue = 0;
// break;
//}
break;
}
}
return command;
}
現在、このコードはコンパイルできません。これは、このようにモデルを列挙できないためです。私がやりたいことは、モデル内の各項目をループし、switch ステートメントを実行して正しい dbType パラメータを構築することです。
このコードを変更する方法について提案がある人はいますか?
ありがとう!!