我正在用 c# 编写一个数据访问层来查找数据库中的库存项目。我有一个像 getStockItemByStockCode(string stockCode) 这样很简单的方法,但是你如何编写一个基于属性组合来查找 stockItem 的方法呢?
例如,如果我将 StockFilter 对象传递给该方法并设置我想要过滤的属性,我如何创建一个实体框架查询来执行此操作而不会变得复杂?或者我应该只获取所有记录并在业务层中过滤它们,这对我来说听起来不正确,因为这意味着我将带回我不需要的数据。
这是我用来通过股票代码获取我的股票项目的方法:
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)
有没有我可以使用的模式或其他东西?库存项目属性可能包括最后销售日期、销售数量、价格范围等。