EF - Общий запрос снова - PullRequest
       3

EF - Общий запрос снова

1 голос
/ 05 апреля 2011

со ссылкой на этот пост , к сожалению, у меня снова возникли некоторые проблемы.

На самом деле, не все мои сущности содержат одинаковые общие свойства, тем не менее, мне нужно наследовать / реализовывать моиИнтерфейс, поэтому, в чьем-то случае свойства являются только декларативными, иначе для другого случая.

Здесь проблема:

public static IQueryable<T> Create<T>(ObjectContext context) 
    where T : class, IEntity
{         
    var query = context.CreateObjectSet<T>().AsQueryable();         
    return query.Where(x => x.CommonProperties == "some value"); // problem here!!    
} 

На самом деле, если ни одна из моих сущностей (документов) не содержит общихсвойств или любого из них, окончательный запрос не будет доступен для просмотра, и будет сгенерировано исключение.

Я безуспешно пытался использовать следующий фрагмент кода:

System.Reflection.PropertyInfo p = query.ElementType.GetProperty("common1");
if (p != null) query = query.Where(x => x.common1 == "value.."); // problem here!!

В этом случаеp переменная никогда null, поэтому мой запрос обречен на неудачу ..

Помогите мне, пожалуйста ..

1 Ответ

1 голос
/ 26 апреля 2011
ParameterExpression itemParameter = Expression.Parameter(typeof(T));
return query.Where(Expresion.Equal(Expression.Property(itemParameter, "COMMONPROP_NAME"), Expression.Constant("VALUE")));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...