2013-10-21 5 views
7

私はそのドキュメントのデータをバイト配列として格納するDocumentクラスを持っています。 LINQ to Entitiesを使用して、配列のサイズを確認する必要があります。エンティティにLINQを使用してバイト配列の長さを取得する方法は?

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

問題、私は次の例外を取得している::。

'にarrayLength' はエンティティへのLINQでサポートされていないLINQ式ノードタイプ」

は、私は、次の試してみました

バイト配列のサイズを確認する他の方法はありますか?

+0

sqlはどのように 'byte []'をデータベースに格納しますか? – Johnny5

+0

あなたはそれを1行に絞りましたか?残りのクエリは投稿する価値があります。また、800000は定数ですか、何とか決められていますか? – Ocelot20

+0

@ Johnny5私が思うBLOBとして –

答えて

3

あなたのLINQのエンティティへの問い合わせが、これは可能です提供し、SQLに変換されます。トランスレータはArray.Lengthを任意のSQLメソッドにマップしないため、LINQ to Entitiesクエリでは使用できません。

テーブルに列を追加するか、長さを計算して列として公開するVIEWを作成します。その後、そのフィールドに対してクエリを実行すると、それが機能します。

+0

またはストアドプロシージャを作成します。 – James

+0

...本当ですが、VIEWはVIEWで照会できることを見て、より簡単に操作できます。 –

+0

ええ私は同意する、ちょうど別の代替を与える:) – James

関連する問題