2

我正在使用带有 T4 模板的 Entity Framework 4.0 STE。根据调用的服务合同,我们可能想要一个简单的 POCO 版本的实体,而其他时候我们想要支持 ChangeTracker 的同一实体的版本。

对于 POCO 版本,如果可能,我们希望避免序列化有效负载中 ChangeTracker 的额外 xml 节点。

有没有办法在运行时基于每个实体动态关闭 ChangeTracker 的序列化?

我能想到的实现这一目标的唯一其他方法包括:

(1) 使用不同的 T4 模板创建两个 EF 模型。一个 T4 模板将包含 ChangeTracker,另一个将省略它,即一个可编辑模型和一个只读模型。

(2) 使用 ISerializable。我可以为实体实现自定义序列化并动态包含或省略它。

(3) 使用一个 EF 模型,使用 AutoMapper 之类的东西将 ChangeTracker 实体映射到 POCO。

有没有其他人动态地抑制了 ChangeTracker?

谢谢!

4

0 回答 0