我想从数据库中检索特定的行。 所以我正在使用此命令来检索它:
UserOwner userowner =_context.User.FromSql("SELECT * FROM db.user WHERE name = 'username'").FirstOrDefault();
return Ok(user);
事情是这会返回一个列表而且我返回列表中的第一个,但是有没有办法直接从SQL命令返回一行?
答案 0 :(得分:0)
如果我正确理解您的问题,您可以使用"使用"获取所有行并添加计数器/索引列的子句,然后添加where子句以获取特定行。这将为您提供原始查询的第5行。
with mainqry as (select t.*, rownum as myindex from db.user t where t.name ='username') select * from mainqry q where q.myindex=5;
答案 1 :(得分:0)
尝试在FirstOrDefault上使用labda函数。
namespace detail
{
template<typename T, typename ...Args>
struct has_member_foo_impl
{
template<typename T_ = T>
static auto test(T_ &&t, Args &&...args) -> decltype(t.foo(std::forward<Args>(args)...), void(), std::true_type{});
static auto test(...) -> std::false_type;
using type = decltype(test(std::declval<T>(), std::declval<Args>()...));
};
} // namespace detail
template<typename T, typename ...Args>
struct has_member_foo : detail::has_member_foo_impl<T, Args...>::type {};
但如果您需要使用SQL脚本,请使用MYSQL:
UserOwner userowner =_context.User.FirstOrDefault(o=> o.name == "username" );
return Ok(user);