0

我有一个 WCF 服务,其中我有一个方法,该方法使用实体框架返回表示数据库表(Accommodation)的对象的 IQueryable。当我尝试在客户端使用该方法时,该方法不会返回 IQueryable 而是返回对象。我查看了服务的代码,Entity Framework 生成的住宿类具有此属性

[DataContractAttribute(IsReference=true)]

因此,AFAIK 客户端应该能够看到该类。这里出了什么问题?

谢谢,

萨钦

4

1 回答 1

4

该类型仅在合约中使用时才会出现在元数据中。元数据不知道 IQueryable 是什么——它是行为的定义,而合约只定义状态,因此生成的代码将使用它在这种情况下确实理解的东西——即对象

在您的服务合同中使用 EF 生成的类型确实不是一个好主意 - 实际上,您将服务使用者与数据访问层紧密耦合。在服务内部使用 EF 并使用定义要在服务边界上传递的数据的类型

于 2012-09-05T10:19:13.050 回答