0

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

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

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

有没有办法自动做到这一点?我正在使用 .NET 4.0 和 EF 4.1。

4

2 回答 2

1

有带有 WCF 数据服务的实体框架提供程序,可能对您有帮助。

于 2012-04-14T13:17:25.697 回答
1

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

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

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

于 2012-04-14T15:34:22.293 回答