从数据库.net core 2中选择特定行

时间:2018-05-31 18:35:47

标签: mysql entity-framework asp.net-core-2.0 pomelo

我想从数据库中检索特定的行。 所以我正在使用此命令来检索它:

 UserOwner userowner =_context.User.FromSql("SELECT * FROM db.user WHERE name = 'username'").FirstOrDefault();
                return Ok(user);

事情是这会返回一个列表而且我返回列表中的第一个,但是有没有办法直接从SQL命令返回一行?

2 个答案:

答案 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);