具有以下数据库架构:
这将翻译为以下内容:
public class Objects1
{
public Guid Id {get; set;}
public string Name {get; set;}
public string ICollection<Objects2> Object2List {get; set;}
};
public class Objects2
{
public Guid Id {get; set;}
public string Name {get; set;}
public Objects1 Object1 {get; set;}
};
如何根据objects2值过滤object1行?
类似的东西:
mydb.Objects1.Where(o1 => o1.Object2List.Any(o2.Name.Contains("bla")))
但是这给出了运行时异常。
答案 0 :(得分:0)
因此,在一个非常简单的测试中,一切正常,但就我而言,我正在运行时动态生成OrderBy
和ThenBy
调用,因此我需要调用OrderBy
或ThenBy
,具体取决于IQueryable
实际上是IOrderedQueryable
。
奇怪的是,如果在订购前调用了queryable.Where(o1 => o1.Object2List.Any(o2.Name.Contains("bla")))
之类的内容,则var ordered = queryable as IOrderedQueryable<TModel>;
不为null,但是对ThenBy
的调用失败。我通过在过滤之前进行排序来解决了这个问题。