C# 实体框架查询-必须声明标量变量
这个项目是用ASP.NETMVC用c编写的 您好,我用实体框架创建了数据库并添加了一些数据。现在我想获取数据并将其放入变量中 这就是我获取数据的方式,它是这样工作的:C# 实体框架查询-必须声明标量变量,c#,sql,asp.net-mvc,entity-framework,C#,Sql,Asp.net Mvc,Entity Framework,这个项目是用ASP.NETMVC用c编写的 您好,我用实体框架创建了数据库并添加了一些数据。现在我想获取数据并将其放入变量中 这就是我获取数据的方式,它是这样工作的: string hash = db.Database.SqlQuery<string>("Select PasswordHash From Users where Username = 'Paul'").FirstOrDefault<string>(); 感谢您的帮助。数据库认为@username是一个变量
string hash = db.Database.SqlQuery<string>("Select PasswordHash From Users where Username = 'Paul'").FirstOrDefault<string>();
感谢您的帮助。数据库认为@username是一个变量,这就是您收到错误消息的原因。正如您所说,您可以使用参数,这将用其值替换参数。这些参数被传递给您正在用作数组的方法。数据库认为@username是一个变量,这就是您收到错误消息的原因。正如您所说,您可以使用参数,这将用其值替换参数。这些参数被传递给作为数组使用的方法。同样,创建sql参数并将其附加到查询中
var parameters = new List<SqlParameter> {
new SqlParameter("@username", username)
};
string query = "Select PasswordHash From Users where Username = @username";
string hash = db.Database.SqlQuery<string>(query, parameters.ToArray()).FirstOrDefault<string>();
同样,创建sql参数并将其附加到查询,如
var parameters = new List<SqlParameter> {
new SqlParameter("@username", username)
};
string query = "Select PasswordHash From Users where Username = @username";
string hash = db.Database.SqlQuery<string>(query, parameters.ToArray()).FirstOrDefault<string>();
SqlQuery方法还有另一个重载,允许您将数据传递到查询中
看
msdn中的示例:
using (var context = new BloggingContext())
{
var blogId = 1;
var blogs = context.Blogs.SqlQuery("dbo.GetBlogById @p0", blogId).Single();
}
SqlQuery方法还有另一个重载,允许您将数据传递到查询中
看
msdn中的示例:
using (var context = new BloggingContext())
{
var blogId = 1;
var blogs = context.Blogs.SqlQuery("dbo.GetBlogById @p0", blogId).Single();
}
你看过文件了吗