0
我目前正在使用EF和MVC構建自定義報告生成器。我的查詢構建器構建SQL,然後我可以使用dbSet.SqlQuery()對數據庫運行此查詢。自定義查詢/報告返回類型
但是,用戶將能夠從不同的表中選擇他們希望返回的字段。
因此,我不確定哪個「類型」將結果返回爲。如果只選擇「客戶」表中的字段,我可以輕鬆地返回「客戶」列表。
我希望這是有道理的。任何人都可以在這裏給我任何指針嗎?
我目前正在使用EF和MVC構建自定義報告生成器。我的查詢構建器構建SQL,然後我可以使用dbSet.SqlQuery()對數據庫運行此查詢。自定義查詢/報告返回類型
但是,用戶將能夠從不同的表中選擇他們希望返回的字段。
因此,我不確定哪個「類型」將結果返回爲。如果只選擇「客戶」表中的字段,我可以輕鬆地返回「客戶」列表。
我希望這是有道理的。任何人都可以在這裏給我任何指針嗎?
嗯...不知道你會找到一個完美的解決方案。問題是你需要在運行時定義列。最初我以爲你可以嘗試使用匿名類型,但是你不能在方法簽名中使用匿名類型。如丹尼斯所建議的動態對象上的動態對象Here is an article,但是將它與你的想法聯繫在一起就在我的頭上。長話短說我不認爲有一個簡單的答案。
下面是通過查看this MSDN Artical關於如何對您的DBContext執行通用查詢創建的示例。您可能可以使用它,但是您將無法保留您的數據類型(可能這與您的報告無關?):
using (var context = new BloggingContext())
{
//Here blogNames will be a List<string[]>
var blogNames = context.Database.SqlQuery<string[]>(
"SELECT Name, YourProperty FROM dbo.Blogs").ToList();
}
您是否考慮過使用'dynamic'對象? –