我在过滤相关数据(多对多)的剑道数据源时遇到问题。我正在使用 ASP.NET WebAPI2 和 DataSourceRequest 来捕获服务器上的请求。然后使用 IQueryable 上的 .ToDataSourceResult() 扩展方法获取数据。
我知道这篇文章http://blogs.telerik.com/kendoui/posts/12-11-29/the_facts_on_using_kendo_ui_with_asp_net_webapi http://blogs.telerik.com/kendoui/posts/12-11-29/the_facts_on_using_kendo_ui_with_asp_net_webapi
我的数据结构如下:-
客户 -> 客户地址 -> 地址
其中 CustomerAddress 是 Customer 和 Address 表之间的联接表。 Customer 和 CustomerAddress 上都有一个导航属性。
Kendo 数据源如下:-
var customers = new kendo.data.DataSource({
transport: {
read: {
url: "api/customers", type: "GET"
}
},
pageSize: 10,
page: 1,
serverPaging: true,
serverFiltering: true,
type: "webapi",
schema: {
data: "Data",
total: "Total",
errors: "Errors",
model: {
id: "CustomerID"
}
}
});
过滤器需要应用于地址表中的字段。 IE。 AddressLine1 = "{搜索参数}"
我已经尝试过以下方法:-
var filters = {
logic: "or",
filters: [
{field: "FirstName",operator: "contains",value: "xyz"},
{field: "LastName",operator: "contains",value: "xyz"},
{field: "CustomerAddress.Address.AddressLine1",operator: "contains",value: "xyz"},
]
};
customers.filter(filters);
其中前 2 个过滤器工作得非常好。我已经对可查询对象执行了 .Include() 操作,并且地址信息加载正常。
如何使用 kendo DataSourceRequest 执行此操作?