データベース内の在庫商品を検索するために、C# でデータ アクセス レイヤーを作成しています。getStockItemByStockCode(string stockCode) のような簡単なメソッドがありますが、プロパティの組み合わせに基づいて stockItem を検索するメソッドを作成するにはどうすればよいでしょうか?
たとえば、StockFilter オブジェクトをメソッドに渡し、フィルター処理するプロパティを設定する場合、複雑になることなくこれを行うための Entity Framework クエリを作成するにはどうすればよいでしょうか? または、すべてのレコードを取得してビジネス レイヤーでフィルター処理する必要があります。これは、必要のないデータを戻すことになるため、正しくないように思えます。
これは、ストックコードで在庫アイテムを取得するために使用している方法です。
public StockDTO getStockItemByStockCode(string stockCode)
{
StockDTO stockItem = null;
using (var db = new DbContext())
{
var aStock = (from stock in db.STK_MASTER
where stock.STOCK_CODE.Equals(stockCode)
select stock).Single();
Mapper.CreateMap<STK_MASTER, StockDTO>();
StockDTO stockDto = Mapper.Map<STK_MASTER, StockDTO>(aStock);
stockItem = stockDto;
}
return stockItem;
}
これは、プロパティの組み合わせに基づいて在庫アイテムを取得するために使用したいメソッド ヘッダーです。
public StockDTO getStockItem(StockFilter stockProperties)
これに使用できるパターンまたは何かはありますか?在庫商品のプロパティには、最終販売日、販売数量、価格帯などが含まれる場合があります。