在.NET Ria Services中创建DomainService并使用Subsonic时,我可以按如下方式添加IQueryable方法:
public IQueryable<Server> GetServers() { return Server.All(); }
它编译没有问题但是当我添加一个方法来获取特定服务器时:
public IQueryable<Server> GetServer(int serverID) { return Server.SingleOrDefault( srv => srv.server_id == serverID); }
我得到一个“无法隐式转换myApp.Data.Server类型为System.Linq.IQueryable ..”
我试图将AsQueryable()追加到最后,但这似乎不起作用,因为myApp.Data.Server没有那个定义。
如果可以的话,我无法将其转换为IQueryable。
答案 0 :(得分:2)
如果您要返回单个服务器实体,为什么您希望它是可查询的?您已经找到了您的实体......您将在其上执行哪些查询?
如果确实需要返回一个项目的可查询列表,则可以使用Find()方法而不是SingleOrDefault()。 SingleOrDefault的返回值只是实体类型,而不是IQueryable。