2013-10-21 54 views
7

我有一個Document類,將該文檔的數據存儲爲字節數組。 我需要檢查數組的大小,使用LINQ to Entities。如何獲得使用LINQ to Entities的字節數組長度?

我曾嘗試以下:

[long Linq query here...] o.Data.Length < 800000) 

問題是我得到以下異常:

」「ArrayLength」不是在LINQ支持到實體LINQ表達式節點類型

有沒有其他的方法來檢查字節數組的大小?

+0

sql如何在數據庫中存儲'byte []'? – Johnny5

+0

你是否縮小到單線?查詢的其餘部分可能值得發佈。此外,800000是一個常數,還是以某種方式確定? – Ocelot20

+0

@ Johnny5作爲一個BLOB我想 –

回答

3

你的LINQ到實體查詢轉換成SQL,提供了這個可能。由於翻譯器沒有將Array.Length映射到任何SQL方法,因此您不能在LINQ to Entities查詢中使用它。

您可以做的是在您的表格中添加一列,或創建一個VIEW來計算長度並將其公開爲列。然後你可以查詢該字段,它會起作用。

+0

或創建一個存儲過程。 – James

+0

...是真的,但是VIEW可以更容易地處理,看到您可以在VIEW上查詢。 –

+0

是的我同意,只是給另一種替代:) – James