DapperをORMとして実装しようとしていますが、挿入または更新されたエンティティを返すようにします。これは私が思いついたことです、それはうまく動作しますが、これはデフォルトのクエリとQueryAsyncメソッドを悪用しているのだろうか?CUD操作でクエリやQueryAsyncを使用すると乱用する
public async Task<Models.TestTable> Insert(Models.TestTable inputObject)
{
IEnumerable<Models.TestTable> output;
output = await _connection.QueryAsync<Models.TestTable>(
sql: string.Format("INSERT INTO TestTable (FirstName, LastName) OUTPUT INSERTED.* VALUES (@FirstName, @LastName)"),
param: inputObject);
return output.SingleOrDefault();
}
はい、「INSERT INTO {0}(FirstName、LastName)...」のように指定されているため、string.Formatは(誤って)そこにあります。私はちょうどチェックし、はい、あなたは十分な注意を払っていないし、それを逃したQuerySingleOrDefaultAsyncを実装しました。これに答えていただきありがとうございます。 – Iztoksson
@Iztokssonテーブル名を入力する場合は、ホワイトリスト(テーブルが有効で期待されるテーブル名であることを確認してください。予期しない値を許可しないでください) –