DataServiceContext,Linq:只选择继承的对象
本文关键字:继承 对象 选择 Linq DataServiceContext | 更新日期: 2023-09-27 18:04:33
我使用WCF DataSerice和EF4.1代码优先(c#)。
我有两个实体:1. 人2. 从Person类继承的用户
我只想从DbSet Persons中获取User对象。我该怎么做呢?然后我像这样查询datervice:
service.CreateQuery<User>("DbPersons").OfType<User>().Execute();
我得到一个异常,OfType方法不支持数据服务上下文。
将Linq表达式转换为URI时出错:不支持'OfType'方法。
Ok,通过添加服务操作方法解决。查看解决方案http://msdn.microsoft.com/en-us/library/cc668788.aspx
下面是我的代码: public static void InitializeService(DataServiceConfiguration config)
{
config.SetServiceOperationAccessRule("DbUsers", ServiceOperationRights.AllRead);
}
[WebGet]
public IQueryable<User> DbUsers()
{
return CurrentDataSource.DbPersons.OfType<User>();
}
和在客户端应用程序中像往常一样发送请求:
service.CreateQuery<User>("DbUsers").Execute();