Breeze不支持SQL查詢語法,但您可以使用Breeze與具有此功能的端點通話。如果使用withParameters功能,則可以使用從客戶端傳遞的參數在服務器上組合SQL查詢。例如,你可以有一個服務器端的方法:
[HttpGet]
public IQueryable<Customer> CustomersWhoPurchasedProducts(string zipCode, DateTime startDate, DateTime endDate, [FromUri] int[] productIds)
{
var query = ComposeCustomerQueryFromParameters(zipCode, startDate, endDate, productIds);
IQueryable<Customer> results = ExecuteQueryIntoCustomerObjects(query);
return results;
}
注意,如果你的服務器端方法返回IQueryable<>
,那麼更多的過濾可以被添加到最初的結果是返回到客戶端之前。 Breeze可以將過濾數據添加到查詢中。因此,您的Breeze客戶端可以這樣調用您的服務器方法:
// query with parameters
var query = EntityQuery.from("CustomersWhoPurchasedProducts")
.withParameters({
zipCode: 90210,
startDate: new Date(2014, 1, 1).toISOString(),
endDate: new Date(2014, 4, 1).toISOString(),
productIds: [911, 928, 935, 944]
});
// Add filtering
query = query.where('CompanyName', 'startsWith', 'A');
// Add paging
query = query.skip(20).take(10);
對不起,我沒有WCF示例指向您。從概念上講,它將類似於Web API,但您需要configure it to return JSON。
謝謝。我會嘗試你的建議 – TheSoul 2015-02-09 07:48:15
謝謝,我試過你的建議,它按預期工作。 – TheSoul 2015-02-10 15:29:53