2009-12-09 20 views
1

我發誓我已經看到這個記錄MSDN網站上的某處,但我現在找不到它 - 我正在尋找EF相當於Hibernate命名查詢 - 封裝數據庫特定的SQL的能力在SSDL中查詢,然後像調用映射存儲過程一樣調用它們以獲取實體類型作爲回報。與實體框架使用普通的SQL查詢

[編輯]使用它的基本原理是優化EF提供商翻譯的linq/ESQL查詢(有時它們很糟糕)。

回答

2

在SSDL中創建函數並將其設置爲像這樣的CommandText被描述爲here
然後像here那樣進行函數導入。

0

Entity SQL及其相關功能可能是您正在尋找的。

+0

實體SQL是不是特定數據庫。 – Devart

+0

是的,這應該是最終的意思,以優化查詢由給定的EF提供商翻譯效率低下,所以從這個角度來看,LINQ和實體SQL沒有區別。 – aaimnr

0

OK,發現它歸功於Devart的鏈接(它在同一節的描述) - 他們稱之爲DefiningQuery

+0

如果您要使用DefiningQueries,則必須在SSDL中創建實體(所有列由DefiningQuery返回),然後在CSDL中創建一個實體,並在MSL中編寫正確的映射。 – Devart

+0

你是對的,自定義SSDL函數似乎更適合。 – aaimnr