以下のような API メソッドがあります。
IQueryable を追加して、最後のクエリに where ステートメントを実行するための項目のリストを含めることは可能ですか、それとも SqlQuery プロパティを使用して生の SQL 文字列を作成する必要がありますか。
public IEnumerable<Message> GetMessagesFromApi(DateTime? dateFrom = null, DateTime? dateTo = null, int flag = -1, int messageType = 1, bool media =false)
{
if (dateFrom == null)
dateFrom = DateTime.MinValue;
if (dateTo == null)
dateTo = DateTime.MaxValue;
IQueryable<Message> query = null;
query = db.Messages.Where(x => x.Created >= dateFrom && x.Created <= dateTo);
if (flag >= 0)
{
//Append the where statement on dates to now include Flag
query = query.Where(x => x.Flag == flag);
}
//Here it should execute against Where date >= and date <= and flag = 1
}