我有一個從SQL表中讀取的Linq查詢,並且它返回的字段中有一個來自自定義函數(在C#中)。Linq:方法沒有支持轉換爲SQL - 但如何轉儲到內存?
喜歡的東西:
var q = from my in MyTable
select new
{
ID = my.ID,
Amount = GetAmount(ID)
};
如果我做一個LinqPad q.Dump()
,它顯示的結果,它告訴我它運行自定義函數沒有試圖將其發送到SQL。
現在我想這個聯盟到另一個查詢,使用:
var q1 = (from p in AnotherQuery.Union(q)...
和我得到的錯誤Method has no supported translation to SQL
。
所以,我的邏輯告訴我,我需要轉儲q在內存中,然後嘗試聯合。我試着用ToList()
做這件事,並創建一個從列表中填充自己的輔助查詢,但是這會導致一長串不同的錯誤。我是否在正確的軌道上,試圖讓記憶和工會聯繫在一起,還是有更好的方式來做到這一點?
你配置linkPad到你的sql嗎?用EF? –
沒有特定的EF配置 - 只是添加了一個連接到SQL,並將LinqPad作爲c#程序運行。 –
爲了運行你的數據庫鏈接,你需要加載你的EF配置。 –