2016-03-04 27 views
0

我怎麼能執行一個原始的SQL查詢返回匿名類型返回匿名的ResultSet實體框架執行一個SQL查詢?如何使用,使用的DbContext

我也跟着msdn link,但我無法找到使用DbContext任何解決方案。

在此先感謝。

我解決了這個問題。首先,我將DbContext對象轉換爲ObjectContext對象。然後休息和上面的鏈接一樣。

一些代碼片斷

// convert DbContext to ObjectContext. 
var objContext = new DBEntities(); // db context object 
var adapter = (IObjectContextAdapter)objContext; 
var objectContext = adapter.ObjectContext; 

ObjectQuery<DbDataRecord> query = new ObjectQuery<DbDataRecord>(sqlQuery, objectContext); 
+0

使用動態的,而不是,因爲我從這篇文章讀你不能做匿名http://stackoverflow.com/questions/29852912/return-anonymous-type-using- sqlquery的,原始查詢的實體框架 –

+1

它在您提供如何調用上下文對象,並用它來返回匿名結果的鏈接非常好解釋的,有什麼問題是什麼呢? –

+0

@Antoine你試過了嗎?我嘗試過,並且因爲使用DBContext對象而出現錯誤。 –

回答

1

只是其投影。

using (var context = new DbContext()) 
{ 
    var names = context.Employees.Select(e => new { Name = e.Name }); 
} 

或者

using (var context = new DbContext()) 
{ 
    ObjectQuery<DbDataRecord> query = 
     context.Employees.Select("it.Name"); 

    foreach (DbDataRecord record in query) 
    { 
     // iterate over records 
    } 
} 
+0

這是使用的DbContext,清晰,最好的辦法 –