DataServiceContext& Linq:仅选择继承的对象

时间:2011-08-04 10:14:04

标签: c# wcf entity-framework-4.1 wcf-data-services

我使用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”方法。

1 个答案:

答案 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();