0

Func 式をカスタマイズして、その配列内のバイト配列をチェックし、この配列が POCO のフィールドと等しい場合に true を返すようにする必要があります。

だから定義がわからない…

public Patient GetPatientByIdentificationCode(byte[] bytes)
    {
        return DbSet.Where(Func<>).FirstOrDefault();
    }

患者には、バイトの配列である IdentificationCode があります...

ありがとう

4

2 に答える 2

1

原則として、次のようなものが機能するはずです。

return DbSet
  .Where(i => i.IdentificationCode.Length == bytes.Length)
  .FirstOrDefault();

あなたがもっと明確にできれば、私たちはもっと役立つかもしれません. 具体的にDbSetは、がのコレクションであるPatientかどうかを使用することができます。

于 2013-03-22T10:58:31.940 に答える
0

バイトの順序が等式の一部である場合は、次を使用できますSequenceEqual

return DbSet.Where(p => p.IdentificationCode.SequenceEqual(bytes)).FirstOrDefault();

順序が重要でない場合は、要素が同じで長さが同じであることを確認できます。

return DbSet.Where(p => 
                 p.IdentificationCode.Length == bytes.Length && 
                 p.IdentificationCode.Intersect(bytes).Count() == p.IdentificationCode.Length)
            .FirstOrDefault();

バイトの順序が重要でない場合SequenceEqualにのみ使用してください。

補足として、これを実際のメソッドまたは拡張メソッドにすることを強くPatientお勧めします。

それか、バイト配列よりも比較しやすい (そして表示可能な) 型に変更してください。

于 2013-03-22T14:35:05.790 に答える