我們有一個客戶非常大的表超過列(我知道有人做的!)使用EF代碼第一次
許多列實際上外鍵與其他表數據庫選擇特定的列。
我們也有要求急切加載一些相關的表格。
Linq to SQL或Dynamic Linq有什麼方法可以指定從數據庫中檢索哪些列? 我找的,實際上,在生成SQL語句這種影響一個LINQ聲明:
SELECT Id, Name FROM Book
當我們運行由EF生成的絡查詢,SQL Server將引發一個錯誤,你已經達到的最大列數可以在查詢中選擇!
任何幫助非常感謝!
恰好是這種情況,表中有500列,是自參考我們的工具會自動加載心切的第一級關係,這擊中上可以查詢的列數的SQL限制。
我希望我可以設置到相關的實體,例如Id和名稱(其在UI用來查看記錄到用戶)
我想另一種選擇是僅負載有限列控制什麼FK列應該急切加載。但是,對於具有二進制或ntext列的表而言,這仍然存在問題,您可能不希望一直加載該列。
有沒有辦法將多個模型(實體)綁定到Code First中的同一個表上?我們試圖這樣做,我認爲這一努力失敗了。
我希望有更可靠的方式來指定列。在許多情況下,我們的MVC應用程序爲多個模型共享,我們使用動態LINQ來爲不同的表執行相同的查詢。 – sam360 2012-07-17 19:54:46
動態linq也應該能夠指定投影。 EF是用於處理實體的工具 - 實體就是您已經映射的實體=如果您已將500列映射到實體,則您的查詢無投影將始終返回500列+所有已加載關係的列。 – 2012-07-17 20:23:55
是的,情況就是這樣,表格有500列,並且自動引用我們的工具,自動加載第一級關係,這對於可以查詢的列數有SQL限制。 我希望我可以設置爲只加載相關實體的有限列,如Id和Name(用於在UI中查看記錄給用戶) 我想另一個選項是控制哪些列應該急於加載。然而,對於具有二進制或ntext列的表,您可能不希望加載所有聯繫,這仍然存在問題。 – sam360 2012-07-17 20:59:06