我正在使用OData和Entity Framework从数据库中选择一些记录。每个记录都有一个包含文本内容的文件的路径。在单个服务调用中,我希望能够过滤数据库记录,并根据记录所指向的文件内容过滤生成的对象。因为我不能将LINQ与EF混合使用LINQ to Objects,我认为最简单的方法是在标准OData参数中添加一个额外的查询参数,该参数定义了在应用标准odata过滤器后如何过滤文件内容
看起来像实体查询的“withParameters”方法是添加非标准参数的方法,但它似乎不适用于版本1.4.9的微风。
我做错了什么或者是否有意让这个方法为OData服务提供商工作?
答案 0 :(得分:0)
作为解决这个缺点的解决方法,我发现您可以声明您的实体使用查询作为实体名称的一部分,如下所示:
var entityId = 4;
var answerId = 6;
var entityToQuery = "MyEntity(EntityId=" + entityId + ",answerId=" + answerId + ")";
然后,构建你的微风查询:
var query = breeze.EntityQuery.from(entityToQuery);
这将映射到OData端点,例如:
public IQueryable<MyEntity> GetMyEntity([FromODataUri] int entityId, [FromODataUri] int answerId)
{
}
答案 1 :(得分:-2)
不,您需要使用WebApi适配器。这不是一个轻微的缺点,这是OData的缺点,因为OData不支持这种语法。
但是,WebApi适配器可以完成您想要的所有操作,这是Breeze的默认设置。有关更多信息,请参阅文档。