我想按照這個教程:如何訪問實體框架中的context.Database.SqlQuery?
,但似乎無法訪問此方法,它不會在智能影音意義上露面
context.Database.SqlQuery
我現在用的是下面的代碼,但似乎無法訪問SqlQuery方法:
using(Entities db = new Entities())
{
}
我想按照這個教程:如何訪問實體框架中的context.Database.SqlQuery?
,但似乎無法訪問此方法,它不會在智能影音意義上露面
context.Database.SqlQuery
我現在用的是下面的代碼,但似乎無法訪問SqlQuery方法:
using(Entities db = new Entities())
{
}
您所描述的方法是有效的executin g SQL與EF的DbContext
版本。 (DbContext
用於Code First,也可用於模型,但需要進行一些設置)。但在你的例子中,它應該是以下內容。
using(Entities db = new Entities())
{
db.Database.SqlQuery(....);
}
如果您是第一次使用OOB模型(即EDMX),您可能正在使用的ObjectContext
,在這種情況下,您將需要執行以下操作:
using(Entities db = new Entities())
{
db.ExecuteStoreQuery<ReturnType>("...");
}
ExecuteStoreQuery是否允許查詢返回輸出值? – Funky 2012-08-03 09:16:04
可能但我不太確定確切的語法。如果你的輸出值是一個int或字符串,把它放到泛型參數中可能會給你你的結果,儘管我還沒有嘗試過。備選地,您可以創建一個POCO類來匹配響應類型並將其放入泛型中。還可能有一個版本返回對象。 – 2012-08-03 09:48:25
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();
}
它正在爲我裝配EntityFramework.dll,v4.4.0.0。 如果您使用的是(var context = new MyDataContext()),那麼.ToList()是必需的。 – Thulasiram 2012-10-18 15:17:12
如果你嘗試編譯它,你得到任何錯誤訊息? – 2012-08-03 08:28:06
您正在使用哪種版本的EF,即您的上下文('Entities')是DbContext還是objectcontext – 2012-08-03 08:35:52
我正在使用ObjectContext – Funky 2012-08-03 09:13:03