ベースクエリで1つ以上の列を検索するフィルタを作成しようとしています。それは問題は、質問がレンダリングされ、検索がコード(MSSQLではなく)を介して実行されているため、最適ではないことを100%確信していることです。linq toエンティティ式ツリー匿名型の場合
私の質問は次のとおりです。 (それに精通していない)ので、クエリはdb側が生成されますか?
p.s:私は、動的LINQ
はありがとうござい使用したくありません!
var basequery = (from x in db.table1
join x1 in db.table2 on x.id equals x1.someid
where x.deleted != null && x.moreCondition = "blah"
select new {
x.field1,
x.fiedl2
x2.field1,
x2.field3
});
各列を検索するために、ベースクエリにフィルタを適用します。
foreach (var item in Columns)
{
basequery = basequery.AsEnumerable()
.Where(i => (i.GetType().GetProperty(item.Data)
.GetValue(i, null) ?? string.Empty).ToString().ToUpper().Contains(item.Search.Value.ToUpper())).AsQueryable();
}
これは私が必要なものです:[http://stackoverflow.com/questions/931444/trying-to-develop-a-new-extension-method](http://stackoverflow.com/questions/931444/trying-to-新しい拡張方法を開発する) – Zulander