2011-01-31 38 views
0

我被要求調查linq對於我們正在構建的報告應用程序的sql的有用性。我們的報告表是一個包含數千個不同類型的列(String1-500,Int1-500等)的sql server寬表。它保存來自用戶構建的動態報告的結果。動態linq針對不在dbml中的實體

我們有第二個表格,它使用類型序號對(即列String1)將報表字段映射到報表上的列。

我知道它應該可以構建表達式樹對linq sql dbml類,可以返回報告結果。我想稍微深入一點,只返回映射到字段的列,並返回一個動態類型作爲結果。

還要避免在dbml中維護龐大的報表表類。

是否有可能針對不在dbml中的表(即,不是linq到sql實體)運行動態linq查詢?

我意識到這是L2S的混蛋,我不喜歡它。我正在考慮使用普通的舊ADO並返回一個無類型的結果集。

非常感謝,

伊恩

+0

你的問題是什麼? – 2011-01-31 14:31:24

回答

0

是的,它是可以運行的LINQ to SQL對實體不在DBML。

這樣做可能有幾種方法,但我能想到的最簡單的方法是調用DataContext.ExecuteQuery,它將執行SQL語句並返回結果集。

如果您知道結果的類型,則可以將其轉換爲對象,否則可以將其作爲對象類型的列表返回。