我正在使用Entity Framework 4.0 STE和T4模板。根据调用的服务合同,我们可能需要一个实体的简单POCO版本,有时我们想要一个支持ChangeTracker的同一实体的版本。
对于POCO版本,我们希望尽可能避免序列化有效负载中ChangeTracker的额外xml节点。
有没有办法在运行时基于每个实体动态关闭ChangeTracker的序列化?
我能想到实现这一目标的唯一方法包括:
(1)使用不同的T4模板创建两个EF模型。一个T4模板将包含ChangeTracker,另一个将省略它,即可编辑模型和只读模型。
(2)使用ISerializable。我可以为实体实现自定义序列化,并动态包含或省略它。
(3)使用一个EF模型,使用类似AutoMapper的东西将ChangeTracker实体映射到POCO。
有没有其他人动态压制ChangeTracker?
谢谢!