Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在实体框架中查询非实体类型_C#_Sql_Entity Framework 4_Ado.net - Fatal编程技术网

C# 在实体框架中查询非实体类型

C# 在实体框架中查询非实体类型,c#,sql,entity-framework-4,ado.net,C#,Sql,Entity Framework 4,Ado.net,我正在尝试查询数据库中的非实体对象 …我发现我应该使用sqlQuery(查询,参数);在msdn和许多博客中, 但问题是当我使用以下代码时 db.USERS.SqlQuery<string>(query, mail).ToList<string>(); db.USERS.SqlQuery(query,mail.ToList(); 我得到以下语法错误“非泛型方法'System.Data.Entity.DbSet.SqlQuery(string,params objec

我正在尝试查询数据库中的非实体对象 …我发现我应该使用sqlQuery(查询,参数);在msdn和许多博客中, 但问题是当我使用以下代码时

 db.USERS.SqlQuery<string>(query, mail).ToList<string>();
db.USERS.SqlQuery(query,mail.ToList();
我得到以下语法错误“非泛型方法'System.Data.Entity.DbSet.SqlQuery(string,params object[])”不能与类型参数一起使用” 是否有我应该使用的特定名称空间或什么

我注意到,建议我们使用表
DbSet
调用
SqlQuery
返回实体类型,例如:

using (var context = new BloggingContext()) 
{ 
    var blogs = context.Blogs.SqlQuery("dbo.GetBlogs").ToList(); 
}
上述操作将自动将结果转换为
博客
实体

在本例中,您希望将结果强制转换为字符串,即非实体类型,因此需要使用
SqlQuery
的通用形式,该形式位于上下文中的
数据库
对象中:

using (var context = new BloggingContext()) 
{ 
    var blogNames = context.Database.SqlQuery<string>( 
                       "SELECT Name FROM dbo.Blogs").ToList(); 
}
使用(var context=new BloggingContext())
{ 
var blogNames=context.Database.SqlQuery(
“从dbo.Blogs”).ToList()中选择名称;
}

如果您需要更多详细信息,请阅读

如果我没有记错,请使用
db.Database.SqlQuery()…
@Jonesy's right
db.USERS.SqlQuery
不是泛型的,因为它已经被限制为一种类型(用户)。