0

我们有一个指向 WCF 服务的服务引用,它充当处理数据访问逻辑的模型层的代理。在后台,我们使用 Linq2Sql 作为 ORM 来促进数据库通信。

我们使用生成的类作为我们的数据访问层,但返回的实际上是哑 DTO 对象,它们只不过是 POCO。我想做两件事)

1) 根据自定义类型及其相关属性,通过服务引用控制客户端上可用的内容。这是为了减少班级的规模。

2)我知道 Linq2Sql 实际上是在装饰所有生成的类,但我不希望这些类通过服务引用下降。

目前,如果我们使用类作为输入参数的返回类型,它会被序列化。这很好,除了我想限制哪些属性可用

想法?

4

2 回答 2

0

所以我发现了这一点。基本上,当您创建服务引用时,只有以某种方式使用的类型会被序列化。默认情况下,如果不存在 DataContract,则所有内容都会被序列化。

如果存在 DataContract,它将查找 DataMember 修饰属性并仅序列化这些属性。棘手

于 2010-03-03T20:27:27.623 回答
0

您希望 DTO 穿过您的服务边界,从您的 Linq 抽象到 SQL 对象,对吗?

如果是这种情况,那么我建议您定义 DTO(如果您有很多对象,请编写或找到一些好的 T4 模板),然后使用 AutoMapper 在您的 DTO 和 Linq to SQL 对象之间来回切换。

于 2010-03-04T01:32:16.947 回答