【发布时间】:2011-04-26 10:27:02
【问题描述】:
参考this post,可惜我又出问题了。
实际上,并非我的所有实体都包含相同的公共属性,但我需要继承/实现我的接口,因此,在某些情况下,属性仅是声明性的,否则在其他情况下。
问题来了:
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!!
}
事实上,如果我的两个实体(文档)都不包含公共属性或其中任何一个,最终的查询将无法浏览,并且会生成异常。
我尝试使用以下代码 sn-p 没有成功:
System.Reflection.PropertyInfo p = query.ElementType.GetProperty("common1");
if (p != null) query = query.Where(x => x.common1 == "value.."); // problem here!!
在这种情况下p 变量永远不会null,所以我的查询注定要失败..
请帮帮我..
【问题讨论】:
-
哦,你这个可怜的家伙,到底是谁逼着你为没有共同点的东西编写通用查询代码?好吧,如果你真的必须,看看 Bennor McCarthy 在这个问题中的精彩回答:stackoverflow.com/questions/4782001/… 它并没有涵盖完全相同的问题,而是一个非常相似的问题,所以也许你需要调整重反射代码 sn -ps 在答案中。但这是一个起点。祝你好运!
-
@Slauma:几天前就开始了stackoverflow.com/questions/5496713/entity-wrapper-custom ...仍然是同样的问题,仍然是同样的任性。
标签: c# entity-framework