1

選択されていない要素に対して「どこで」フィルターを実行しようとしていますが、ViewModel にはありません

これは私が持っていることです:

var UserQuery = (from u in db.USER
                join c in db.CONSULT on u.IdUser equals c.IdUser
                select new UserSexViewModel {  IdUser= c.IdUser, UserSex=u.Sex}).Distinct();

UserQueryオブジェクト CONSULT またはオブジェクト USER に属する任意のプロパティで後で変数をフィルタリングしたい

たとえば、後で次のようにフィルタリングします。

CONSULT.TypeConsul, 
CONSULT.DateCreation,
USER.Name,
USER.Age, and many more...

このようなもの:

UserQuery.Where(q=>q.CONSULT.TypeConsul==2) or UserQuery.Where(q=>q.USER.Age>16)

どうすればこれを行うことができますか?

4

2 に答える 2

0
var UserQuery = (from u in db.USER
                join c in db.CONSULT on u.IdUser equals c.IdUser
                select new UserSexViewModel {  IdUser= c.IdUser, UserSex=u.Sex}).Distinct();

//疑似コード

var specification = PredicateBuilder.True<Consult>();//default: build from this
specification = PredicateBuilder.And(specification, x => x.TypeConsult == 2); 
var additionalCriterias = ...;
specification = additionalCriterias == null || additionalCriterias.Length == 0 
                  ? specification 
                  : GetComposedSpecification(additionalCriterias);

var users = UserQuery.Where(specification).ToList()

predicateBuilder @ http://www.albahari.com/nutshell/predicatebuilder.aspxより多くの例

于 2012-07-27T06:51:07.710 に答える
0

LINQ 動的クエリ ライブラリが役に立ちます。

http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspxを参照して ください。

于 2012-07-27T02:16:50.083 に答える