我正在尝试查询数据库中的非实体对象 ...我发现我应该使用sqlQuery(查询,参数);在msdn和很多博客中, 但问题是当我使用你的代码
db.USERS.SqlQuery<string>(query, mail).ToList<string>();
我得到以下语法错误“非泛型方法'System.Data.Entity.DbSet.SqlQuery(string,params object [])'不能与类型参数一起使用” 我应该使用什么特定的名称空间或什么?
答案 0 :(得分:1)
我注意到MSDN article建议我们使用表DbSet
来调用SqlQuery
来返回实体类型,例如这里:
using (var context = new BloggingContext())
{
var blogs = context.Blogs.SqlQuery("dbo.GetBlogs").ToList();
}
以上内容会自动将结果转换为Blog
实体。
在您的情况下,您希望将结果强制转换为字符串,即非实体类型,因此您需要使用SqlQuery
中的Database
的通用形式上下文中的对象:
using (var context = new BloggingContext())
{
var blogNames = context.Database.SqlQuery<string>(
"SELECT Name FROM dbo.Blogs").ToList();
}
如果您需要更多详细信息,请阅读docs