我正在学习ASP.NET Core,并且正在使用SQL Server构建Web API。
但是使用LINQ却很困难,因为我对此只有一点了解,并且不能使用复杂的查询。
这就是为什么我要像
那样使用SQL查询SELECT *
FROM A
WHERE A.ID = 1
如何在ASP.NET Core中使用它?
感谢您的帮助!
答案 0 :(得分:3)
您可以在asp.net核心中将ADO与此类功能一起使用
public static SqlDataReader ExecuteReader(SqlConnection conn, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
SqlCommand cmd = conn.CreateCommand();
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
var rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return rdr;
}
完整的示例可以找到here
答案 1 :(得分:1)
您可以使用FromSql
扩展方法来基于原始SQL查询开始LINQ查询。
var blogs = context.Blogs
.FromSql("SELECT * FROM Blogs")
.Where(b => b.Id ==1)
.FirstOrDefault();
或者您也可以参数化用户输入,以防止成功进行SQL注入攻击的可能性。
var blogs= context.blogs.FromSql("SELECT * From Blogs Where Id = {0}", id).FirstOrDefault();
SQL命令可以是返回所有必需数据字段的任何有效SQL语句。可以通过FromSql方法调用存储过程。DbContext
公开了一个Database
属性,其中包括一个名为ExecuteSqlCommand
的方法。此方法返回一个整数,该整数指定受传递给它的SQL语句影响的行数。有效操作是INSERT,UPDATE和DELETE。该方法不用于返回实体。
有关更多详细信息,您可以参考以下链接: