フィルタリングする小さなリクエスト オブジェクトがあります。
public class BufferFlatViewFilter
{
public bool? Active { get; set; }
public int? CustomerId { get; set; }
public int? TypeId { get; set; }
}
そして、db リクエストの where フィルターを構築する必要があります。
Entity フレームワークを使用して、Where ステートメントをそのように構築することができました。
public List<BufferFlatView> GetBufferFlatView(BufferFlatViewFilter filter)
{
var data = db.qryCampaignOverView
.AsQueryable();
if (filter.TypeId.HasValue)
data = data.Where(x => x.TypeId == filter.TypeId.Value);
if (filter.CustomerId.HasValue)
data = data.Where(x => x.CustomerId == filter.CustomerId);
if (filter.Active)
data = data.Where(x => x.Active == filter.Active);
return data.ToList();
}
エンティティ フレームワーク クエリは遅延ロードされますが、OrmLight クエリではないため、OrmLight の where ステートメントを作成する方法がわかりません。