C# EF-再次执行公共查询
关于,不幸的是,我又遇到了一些问题 事实上,并非所有实体都包含相同的公共属性,但是我需要继承/实现我的接口,因此,在某些情况下,属性只是声明性的,而在其他情况下则是声明性的 问题是:C# EF-再次执行公共查询,c#,entity-framework,C#,Entity Framework,关于,不幸的是,我又遇到了一些问题 事实上,并非所有实体都包含相同的公共属性,但是我需要继承/实现我的接口,因此,在某些情况下,属性只是声明性的,而在其他情况下则是声明性的 问题是: public static IQueryable<T> Create<T>(ObjectContext context) where T : class, IEntity { var query = context.CreateObjectSet<T
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!!
}
在本例中,p
变量从不null
,因此我的查询注定失败
帮帮我吧..噢,你这个可怜的家伙,到底是谁强迫你为没有共同点的东西编写通用查询代码?好吧,如果你真的必须,看看Bennor McCarthy在这个问题上惊人的回答:它没有涵盖完全相同的问题,而是一个非常相似的问题,所以也许你需要稍微调整一下答案中的重反射代码片段。但这是一个起点。祝你好运@斯劳玛:几天前开始的。。。还是一样的问题,还是一样的任性。哦,你这个可怜的家伙,到底是谁强迫你为没有共同点的东西编写共同的查询代码?好吧,如果你真的必须,看看Bennor McCarthy在这个问题上惊人的回答:它没有涵盖完全相同的问题,而是一个非常相似的问题,所以也许你需要稍微调整一下答案中的重反射代码片段。但这是一个起点。祝你好运@斯劳玛:几天前开始的。。。还是一样的问题,还是一样的任性。
ParameterExpression itemParameter = Expression.Parameter(typeof(T));
return query.Where(Expresion.Equal(Expression.Property(itemParameter, "COMMONPROP_NAME"), Expression.Constant("VALUE")));
ParameterExpression itemParameter = Expression.Parameter(typeof(T));
return query.Where(Expresion.Equal(Expression.Property(itemParameter, "COMMONPROP_NAME"), Expression.Constant("VALUE")));