我想用Entity Framework執行三個原始查詢。如何創建臨時表並將其用於與Entity Framework相同的連接?
第一個查詢基本上會創建一個臨時表。第二個查詢將在臨時表上添加一個索引。最後,第二個查詢將加入臨時表到其他表以獲取最終數據集。
但每次我跑我的代碼時,出現以下錯誤
無效
#allRecords
對象。
這裏是我做了什麼
using (BaseContextdb = new BaseContext())
{
using (var dbContextTransaction = db.Database.BeginTransaction())
{
try
{
db.Database.ExecuteSqlCommand("SELECT col1, col2, col3 " +
"INTO #allRecords " +
"FROM someTable " +
"WHERE col5 = 'blab' " +
"CREATE INDEX d ON #allRecords(col1, col2); ");
var results = db.Database.SqlQuery<ResuleModel>(this.GetQuery()).ToList();
db.SaveChanges();
dbContextTransaction.Commit();
}
catch (Exception)
{
dbContextTransaction.Rollback();
}
}
}
我怎麼能正確地創建臨時表與實體框架?
修訂
這裏是由this.GetQuery()
SELECT b.*, c.*
FROM b
INNER JOIN #allRecords AS a ON a.col1 = v.col1 AND a.col2 = b.col2
INNER JOIN c ON c.Id= b.Id
...
...
...
嘗試使用類的表屬性,所以[表(「#allRecords」)]公共類ResuleModel {} ... –
我會在哪裏使用它? – Jaylen
關於ResuleModule類,請參閱http://stackoverflow.com/questions/20184644/howto-specify-table-name-with-entity-framework-code-first-fluent-api作爲示例 - 第二個答案。不,我沒有一個具體的原因,爲什麼我選擇這個鏈接問題,因爲當我谷歌首先使用表格屬性使用示例 –