【问题标题】:WCF: how to create a large number of classes in the contract?WCF:如何在合约中创建大量的类?
【发布时间】:2012-04-14 23:34:22
【问题描述】:

嗯,我正在创建一个 WCF 服务,它有大量的类与客户端通信,这些类也有很多属性。

主要是,这些类是使用 edmx 的代码生成器创建的 POCO 类,我有 .tt 文件。

为了可以使用这些类和属性,我必须使用 DataContract 和 DataMember,所以在每个类中我必须设置 DataContract 和每个属性每个类DataMemeber。所以这是一个很大的工作,所以如果我需要对数据库做一些修改,我必须重新生成 tt 文件,然后重复工作。

有没有办法自动执行此操作?我正在使用 .NET 4.0 和 EF 4.1。

【问题讨论】:

    标签: wcf serialization


    【解决方案1】:

    添加到项目中的 .tt 文件的全部意义在于,您可以修改模板以满足您的需要。您需要做的就是更改模板,使其将[DataContract] 添加到实体类定义中,并将[DataMember] 添加到实体属性定义中。

    从那里,每当数据库发生变化时,您只需使用“从数据库更新模型”功能,您的实体将使用现有模板自动重新生成其代码。

    说了这么多,我将建议您不要直接从您的服务层公开您的数据库实体,无论是否 POCO。您确实应该使用域分离进行设计,并在服务级别使用消息传递和CQRS 类型模式。然后,您只需使用一些简单的映射方法,将这些消息/命令之间的数据转换为您的实体。

    【讨论】:

      【解决方案2】:

      WCF 数据服务有Entity Framework Provider,可能对你有帮助。

      【讨论】:

        猜你喜欢
        • 2018-10-23
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多