相关实体上的Breeze OData功能

时间:2018-03-30 13:54:41

标签: entity-framework-6 odata breeze predicate

如何在Breeze实体查询的相关属性上应用OData函数?

例如,我有两个实体EntityA和EntityB

public class EnityA{
   public ICollection<EntityB> Collection {get; set;}
}
public class EnityB{
   public DateTime DateColumn {get; set;}
   public EnityA One {get; set;}
}

我能够在使用OData函数的EntityB上创建一个微风查询。例如

var pred1 = Predicate.create('year(DateColumn)', '==', 2018)
var queryOnEntityB = EntityQuery.from('EntityB').where(pred1)

上面的查询效果很好。 但是,下面的查询无效。

var pred1 = Predicate.create('year(DateColumn)', '==', 2018)
var pred2 = Predicate.create('Collection ', 'any', pred1)
var queryOnEntityA = EntityQuery.from('EntityA').where(pred2); 

我收到错误

Cannot find a property named "DateColumn" on type "EntityA"

奇怪的是,它试图在错误的实体上找到列。但是,以下查询有效:

var pred1 = Predicate.create('DateColumn', '==', '2018-02-02')
var pred2 = Predicate.create('Collection ', 'any', pred1)
var queryOnEntityA = EntityQuery.from('EntityA').where(pred2); 

因此,只有在尝试在导航属性中包含OData函数时才会出现错误。  我做错了什么,如何纠正?

0 个答案:

没有答案