我想从数据库中检索特定行。所以我使用这个命令来检索它:
UserOwner userowner =_context.User.FromSql("SELECT * FROM db.user WHERE name = 'username'").FirstOrDefault();
return Ok(user);
问题是这会返回一个列表,我会返回列表中的第一个,但是没有办法直接从 SQL 命令返回一行吗?
我想从数据库中检索特定行。所以我使用这个命令来检索它:
UserOwner userowner =_context.User.FromSql("SELECT * FROM db.user WHERE name = 'username'").FirstOrDefault();
return Ok(user);
问题是这会返回一个列表,我会返回列表中的第一个,但是没有办法直接从 SQL 命令返回一行吗?
如果我正确理解您的问题,您可以使用“with”子句来获取所有行并添加计数器/索引列,然后添加 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;
尝试在 FirstOrDefault 上使用 labda 函数。
UserOwner userowner =_context.User.FirstOrDefault(o=> o.name == "username" );
return Ok(user);
但如果您需要使用 SQL 脚本,对于 MYSQL 使用:
"SELECT * FROM db.user WHERE name = 'username' LIMIT 1"