2011-06-14 24 views
1

我在我的應用程序中使用EF代碼第一種方法。我需要執行一個查詢,它運行一個報告並返回帶有動態生成字段的結果集。根據條件,結果集中的字段可能會有所不同。是否有可能使用代碼優先的方法返回結果集,比如可能在DataSet中,或者是否有其他方法來實現?EF - 執行具有動態生成字段的sql查詢/存儲過程

謝謝。

+0

CTP5已死亡。改用EF 4.1。 – 2011-06-14 19:48:08

回答

2

(未測試)您可以嘗試定義數據類型,該數據類型將具有您的查詢可以返回的所有可能列的屬性。它必須是平面類型,沒有嵌套對象,屬性必須與結果集中的列具有相同的名稱。然後你可以使用

var data = context.Database.SqlQuery<YourType>("Your SQL Query or SP call"); 

如果你想DataSet只有返回的列則必須使用標準ADO.NET SqlDataAdapterSqlConnection/SqlCommand(或版本相關的數據庫)。 EF不喜歡不返回固定列的原生查詢。

+0

感謝您的回覆。有太多的列讓他們在一個類型。現在,我可能會使用標準的ADO.Net方法。 – MNIK 2011-06-14 19:56:23