3

我正在尝试遵循本教程:

http://blogs.msdn.com/b/diego/archive/2012/01/10/how-to-execute-stored-procedures-sqlquery-in-the-dbcontext-api.aspx

但似乎无法访问此方法,它不会出现在智能感知中

context.Database.SqlQuery

我正在使用以下代码,但似乎无法访问 SqlQuery 方法:

using(Entities db = new Entities())
{    
}
4

2 回答 2

4

您描述的方法适用于执行 SQL 与DbContextEF 版本。(DbContext用于代码优先,也可用于模型优先,但您需要进行一些设置)。但是,在您的示例中,它应该如下所示。

using(Entities db = new Entities())
{   
    db.Database.SqlQuery(....);
}

如果您首先使用 OOB 模型(即 edmx),那么您可能正在使用ObjectContext,在这种情况下,您需要执行以下操作:

using(Entities db = new Entities())
{   
    db.ExecuteStoreQuery<ReturnType>("...");
}

请参阅:http: //blogs.microsoft.co.il/blogs/gilf/archive/2009/11/25/execute-t-sql-statements-in-entity-framework-4.aspx

于 2012-08-03T08:43:39.513 回答
1
return context.Database.SqlQuery<myEntityType>("mySpName {0}, {1}, {2}",
new object[] { param1, param2, param3 });

//或者

using(var context = new MyDataContext())
{
return context.Database.SqlQuery<myEntityType>("mySpName {0}, {1}, {2}",
new object[] { param1, param2, param3 }).ToList();
}

//或者

using(var context = new MyDataContext())
{
object[] parameters =  { param1, param2, param3 };

return context.Database.SqlQuery<myEntityType>("mySpName {0}, {1}, {2}",
parameters).ToList();
}

//或者

using(var context = new MyDataContext())
{  
return context.Database.SqlQuery<myEntityType>("mySpName {0}, {1}, {2}",
param1, param2, param3).ToList();
}
于 2012-10-18T15:16:14.940 回答