3
にこのコンテキストで許可されていない私は、次のコードを有する:列挙シーケンスはDapperの
static void Main(string[] args){
string sql= "SELECT * FROM Posts WHERE 1=1 ";
SqlParameter[] @params= SetDynamicParameter(ref sql, "Param=Value", "Param2=Value2", "ParamN=ValueN");
IDbConnection connection = new SqlConnection(connectionString);
IEnumerable<Posts> en = connection.Query<Posts>(sql,param:@params);
Console.ReadKey(true);
}
static SqlParameter[] SetDynamicParameter(ref string sql,params string[] sarr) {
string condition = string.Empty;
List<SqlParameter> list = new List<SqlParameter>();
foreach (var item in sarr)
{
condition += " AND "+item.Split('=')[0] + "[email protected]" + item.Split('=')[0];
list.Add(new SqlParameter("@" + item.Split('=')[0], item.Split('=')[1]));
}
sql += condition;
return list.ToArray() ;
}
出力誤差:パラメータ(配列、リストの列挙シーケンスを、この文脈では許可されない。
どのようにすることができますか?同等のソリューションはありますか?
Dapperのプロパティと値のセットではなく、SQLパラメータのリストで何かを望んでいるためだこと。私は、キーがパラメータ名(@を除く)で、値がパラメータに設定する値である代わりに 'Dictionary'を作成できると思います。アイデアは、Dapperがあなたのためにプロパティの作成を行うということです。 –
juharr
おそらく、あなたはこのstackoverflowスレッドで何かを見つけるでしょう。 [http://stackoverflow.com/questions/33681176/dapper-multi-insert-returning-inserted-objects] –