我正在尝试构建具有大量实体和一些服务操作的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