我正在试图使用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();
}
}
}
如何使用 Entity Framework 正确创建临时表?
更新
这是由 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
...
...
...
this.GetQuery()
返回一个复杂的查询。我会更新我的问题,说明this.GetQuery()
返回什么。 - Jaylen