我使用WCF DataSerice和EF4.1代码优先(C#)。
我有2个实体: 1人 2.用户继承自Person类
我想从DbSet Persons中只获取User对象。我怎样才能做到这一点? 然后我查询数据服务:
service.CreateQuery<User>("DbPersons").OfType<User>().Execute();
我得到一个例外,即dataservice context不支持OfType方法。
将Linq表达式转换为URI时出错:不支持“OfType”方法。
答案 0 :(得分:2)
好的,通过添加服务操作方法解决了。 请在此处查看解决方案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();