2015-02-08 101 views
1

我正在寫一個靈活的報表系統。作爲它的一部分我通過連接像實體框架SqlQuery返回匿名類型記錄

SQL創建SQL語句=「從a_v選擇*其中的ename = 1」

我想知道如何使用

db.Database.SqlQuery(sql) 

返回集合的匿名記錄,所以它是真正靈活的。

我找不到辦法做到這一點,因爲它似乎是強類型。

是否可以返回匿名類型的記錄。一個例子會很好

+0

我不是很確定我要說什麼,但是一個OR/M映射類型,而匿名類型可以是任何類型。也許你可以映射實際的類型,並使用Automapper或類似的東西將它們映射到匿名類型 – 2015-02-08 18:06:48

回答

0

我可能錯誤地解釋了你的目標,但是聽起來你想要使用投影。您可以從Linq返回匿名類型的列表。一個例子是:

var anonymousListOfBoxes = 
    from b in CustomerBoxes 
    select new { 
     b.Customer, 
     b.BoxID, 
     b.Barcode 
    }; 

現在,anonymousListOfBoxes將是一個System.Linq.IQueryable <(匿名)>。每個項目將有3個屬性 - 客戶,BoxID和條碼。該列表不會是CustomerBox的集合,因爲如果您沒有使用帶有「select」的投影,它將會是。