一致を返すためにLinqクエリを介してエンティティフレームワークに渡したいIDの配列があります
Id を文字列に変換し、次のような「Contains」演算子を使用できる Linq クエリを作成しました。
モデル
public class Order {
public long OrderId { get; set; }
public string Name { get; set; } ...}
Order[] orders = { new Order { OrderId = 123, Name = "Order1" }, new Order {...},...};
次のようなものを使用できます。
long[] testArray = {123, 456};
その後
var result = orders.Where(i => testArray.ToString().Contains(i.OrderId.ToString()));
しかし、IDを文字列にキャストし続ける必要がありますか? それらをintとして保持すると、「Contains」にアクセスできないように見えます。
最終的には、これを Entity Framework にアクセスするクエリの一部として使用できるようにしたいので、そのクエリを IQueryable<> の一部として渡し、一握りだけが必要な場合に大量のデータを返さないようにします。なので:
var orders = _repo.Orders().Where(i => orderArray.Contains(i.OrderId));
したがって、すべてのデータを取得してからメモリ内でチェックするのではなく、EF を介してクエリ パラメータ (int 配列) を使用すると、どのような解決策も役立ちます。
乾杯!