2

14バイトのデータを含むバイナリフィールド(「bin」と言います)を含むテーブルがあります。このフィールドを以下のように検索したいと思います。

from row in db.users where row.bin.SequenceEqual(data) select row

「データ」変数のタイプはbyte[]です。しかし、「q.Count()」を実行すると、次のエラーが発生します。

LINQtoEntitiesはメソッド'BooleanSequenceEqual[Byte]を認識しません
(System.Collections.Generic.IEnumerable`1 [System.Byte]、
System.Collections.Generic.IEnumerable`1 [System.Byte])'メソッド、
このメソッドはストア式に変換できません。

一致するバイナリデータの数を取得するにはどうすればよいですか?

ありがとう

4

2 に答える 2

0

できません。Entity Frameworkは、バイナリフィールドを使用した操作をサポートしていません。

于 2012-10-03T17:06:20.950 に答える
0

データモデルを所有していて、バイナリデータが小さな固定サイズのバイト配列である場合は、SQLデータ型をからbinary(14)に変更し、データベースへの途中char(21)で使用したり、途中で使用したりできます。Convert.ToBase64StringConvert.FromBase64String

文字列に切り替えると、データが検索可能になります。検索dataをbase64文字列としてエンコード==し、検索条件で演算子を使用するだけです。

于 2012-10-03T17:31:40.727 に答える