【发布时间】:2014-10-13 02:56:24
【问题描述】:
我在 WebAPI 中有一个执行 SQL 的操作方法:
var sql = @"UPDATE UserTestQuestion
SET AnswerGridResponses = @AnswerGridResponses,
Answered = 1
WHERE UserTestQuestionId = @UserTestQuestionId
AND UserId = @UserId;";
var parameters = new SqlParameter[]
{
new SqlParameter("@CreatedBy", createdBy),
new SqlParameter("@AnswerGridResponses", answerGridResponses),
new SqlParameter("@TestQuestionId", testQuestionId)
};
var rc = await db.Database.ExecuteSqlCommandAsync(sql, parameters);
if (rc > 0)
{
return Ok(rc);
}
else
{
return BadRequest();
}
据我了解,ExecuteSqlCommandAsync 将返回一个数字给
指示更改了多少行。所以我添加了rc > 0 的支票。
有没有一种方法可以在不需要所有{} 的情况下做到这一点。我曾是
考虑使用 ? : 运算符,但我认为这些仅适用于设置值,不适用于我正在使用的返回。
【问题讨论】:
-
不,继续使用它。
-
你必须确保它们是相同的类型,而不仅仅是返回对象
-
它被称为三元运算符。在 SQL 中,它就像一个
case when then end语句。 -
简单地返回零有什么问题?如果我进行的查询返回“0 rows queried”对我来说是有意义的。
-
我希望这不是你的真实代码。拥有 EF 并对其运行普通查询。
标签: c# asp.net-web-api return-value null-coalescing-operator