前言
相信.NET的開發者對Entity Framework(簡稱EF)絕對不陌生, 這是基於.NET的ORM框架, 除了可以讓開發者用存取物件的方式與資料庫溝通之外, 還可以搭配LINQ to Entity的技術, 更輕易地撰寫查詢邏輯, EF底層會自動將這些邏輯轉換為對應的SQL語法,然後執行在SQL Server上
雖然LINQ to Entity很方便, 但在使用上也必須小心, 不然有可能在編譯的時候都OK, 但Runtime時卻跳出以下的錯誤訊息
錯誤訊息LINQ to Entities does not recognize the method System.String Format
錯誤的使用方式
這個問題出在於Select 的時侯呼叫了string.Format
在這個情況下使用LINQ to Entities時, C#會告訴SQL Server去執行string.Format, 但由於SQL Server上沒有相對應的指令, 所以才會出現這個錯誤訊息
解決方法
可以將Query分成兩段, 前半段最後呼叫 .AsEnumerable() 將資料讀到記憶體中,
後半段Query就能以LINQ to Objects的方式來操作資料,string.Format也可以正常的被呼叫
留言
張貼留言