C# 在实体框架中查询非实体类型
我正在尝试查询数据库中的非实体对象 …我发现我应该使用sqlQuery(查询,参数);在msdn和许多博客中, 但问题是当我使用以下代码时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
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 rightdb.USERS.SqlQuery
不是泛型的,因为它已经被限制为一种类型(用户)。