ユーザーが独自のクエリを作成できるようにしようとしています。この問題を解決すると思われるこのコードを見つけました:
var predicate = PredicateBuilder.True<T1>();
if (a != "")
predicado = predicado.And(e1 => e1.field1.Contains(a));
if (b!= "")
predicado = predicado.And(e1 => e1.field2.Contains(b));
var TestQuery = db.T1.AsExpandable().Where(predicate).ToList();
これらは私のモデルクラスです:
public partial class T1
{
public long id_t1 { get; set; }
public string field1 { get; set; }
public string field2 { get; set; }
}
public partial class T1
{
public long id_t2 { get; set; }
public string field1 { get; set; }
public string field2 { get; set; }
}
しかし、PredicateBuilder
次のような結合ステートメントでを使用する方法が必要です。
var query = from f in db.T1
where (f.T1field1.Equals("something") && f.T1field2.Equals("something"))
join m in db.T2 on f.T1field1 equals m.T2field1
where (m.T2fiel1 != null && m.T2field2 != null )
select m;