1
我有一個SQL語句,我想返回一個人有一個相關的部門實體的列表。 Person類有一個Department ID和一個實體框架的魔力,當我從數據庫中加載它時,它將正確的Department對象關聯起來。EF與SQL查詢加載相關的實體
我的SQL語句是:
SELECT *
FROM PERSON
INNER JOIN DEPARTMENT ON PERSON.DEPARTMENT_ID = DEPARTMENT.ID
WHERE UPPER(FORENAME) LIKE '%RALPH%'
ORDER BY SURNAME
在當我運行查詢MSSMS我得到如下結果:
然而,當我運行使用DbSet.SqlQuery的SQL( )我得到以下結果:
請注意部門對象在第一個項目中如何爲空,但已填充到第二個項目中。
我知道我沒有提供太多的信息,我希望這只是一個簡單的答案。
順便說..
LazyLoadingEnabled設置爲false,你可以看到,我知道改變這個真會解決這個問題。我寧願不啓用它,因爲我想要的任何一個呼叫都需要它。
謝謝你們
爲什麼使用'SqlQuery'而不是正確的EF查詢? – DavidG
我有一個人,我執行過濾器..使用由用戶提供的標準,我生成一個SQL語句的列表。搜索有很多潛在的變化,所以sql語句似乎是要走的路。 – Murphybro2
這幾乎肯定不是要走的路,否則使用EF沒有意義。 – DavidG