我正在嘗試構建具有大量實體和一些服務操作的ADO.NET數據服務。一方面,我創建了一個ASP.NET Web應用程序,其中包含一個ADO.NET實體數據模型和一個ADO.NET數據服務。另一方面,我創建了第二個ASP.NET Web應用程序,該應用程序具有數據服務的服務引用。從.NET客戶端使用ADO.NET數據服務的服務操作
實體通過很好的未來,我可以使用LINQ來獲取我想要的數據:
TestEntities entities = new TestEntities(
new Uri("http://localhost/service/service.svc"));
var query = from customer in entities.Customers
where customer.ID == 1234
select customer;
query.ToList();
這工作。但是,通過服務操作檢索信息完全沒有我。 數據服務端代碼:
public static void InitializeService(IDataServiceConfiguration config) {
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
}
[WebInvoke]
public IQueryable<Customer> GetSomeCustomers() {
TestEntities entities = new TestEntities();
return from customer in entities.Customers
where customer.ID > 0 && customer.ID < 20
select customer;
}
當我加入了服務引用我的客戶項目,Visual Studio中沒有任何服務運營回升。我知道我可以通過構造的URI和DataServiceContext對象或TestEntities對象的BeginExecute方法(在本例中)訪問它們,或者類似的東西,但這不是我想要的。
我想要的是使用LINQ來通過服務操作返回的數據。 這可能嗎?應該是吧?
好吧,但你如何調用從客戶端的「OrdersByRegion」操作?您是否必須手動構建REST URL(例如http://server/service.svc/OrdersByRegion?regionId = 1)?謝謝。 – 2009-11-17 15:11:02
嗨Ciprian,是的,不幸的是你做的。 string.format通常是最好用的。看到我的第一個代碼示例演示如何調用它 – dmportella 2009-11-17 22:48:16
對不起,我忘記將其標記爲接受的答案(我正在瀏覽我的問題),那時我有點沮喪,URL不會自動生成。謝謝。 – pancake 2011-07-30 07:01:30