繁体   English   中英

在WCF服务中公开为对象的数据库实体

[英]Database entity exposed as object in WCF service

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

[DataContractAttribute(IsReference=true)]

因此,AFAIK客户端应该能够看到该类。 这是怎么了?

谢谢,

萨钦

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM