次のコードを取得しました
public class Personnel {
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int OrganizationalUnitId { get; set; }
public int RoleId { get; set; }
}
private List<Expression<Func<Personnel, bool>>> personnelFilter;
public void AddFilter(Expression<Func<Personnel, bool>> filter)
{
this.personnelFilter.Add(filter);
}
public IEnumerable<Personnel> GetResult()
{
IQueryable<Personnel> personnel = Store.Instance.Query<Personnel>();
foreach(var filter in this.personnelFilter)
{
personnel = personnel.Where(filter);
}
return personnel;
}
AND を使用するようになりました。これは、既にフィルター処理されたクエリに Where 句を追加するためです。しかし、AND ではなく OR として追加したいと思います。
それでは、フィルターを追加するとしましょう:
model.AddFilter(a => a.FirstName == "Test")
model.AddFilter(a => a.FirstName == "More")
// Or adding something stupid like:
model.AddFilter(a => a.OrganizationalUnit == 1)
model.AddFilter(a => a.OrganizationalUnit == 1)
次のクエリが必要です。
WHERE Firstname == "Test" || Firstname == "More"
せずに:
model.AddFilter(a => a.FirstName == "Test" || a.FirstName == "More")
これは可能ですか?つまり、式を含むリストを取得し、where 句で AND ではなく OR を使用したいのですが、それを機能させる方法が見つかりません。何か案は?