2011-05-12 174 views
0

嗨,我正在开发一个EF 4项目。 我想实现POCO自我跟踪是否需要实施wcf服务? 我遇到修改实体的问题,因为更改不会持久保存到数据库。实体框架4 POCO自我跟踪

在此先感谢。

回答

0

没有你不需要的服务,但如果你不使用的服务,您应该手动自我跟踪实体说我在another answer解释自我跟踪实体的目的,它必须开始通过调用StartTracking

跟踪更改。如果您不需要从上下文中分离自我跟踪实体,则应使用POCO。附加的自我跟踪实体可以作为POCO使用,但它会丢失一些功能 - 例如延迟加载,因为自动跟踪实体未被代理。

只有当您控制客户端和客户端使用.NET编写时,对WCF使用自我跟踪实体才有意义。我还在another answer中描述过这一点。

你可能不需要STE。

+0

感谢您的回答。经过大量的混乱。我通过调用context.DetectChanges()来对问题进行排序。我发现StartTracking&MarkAsModified()不起作用,但是这解决了它。我只需要调用DetectChanges()并且不需要StartTracking&MarkAsModified()。你知道MarkAsModified()和DetectChanges()之间的区别。谢谢 – markpcasey 2011-05-12 11:10:33

+0

你如何使用自我跟踪实体? 'DetectChanges'只有在实体没有脱离上下文的情况下才起作用,在这种情况下,不需要自我跟踪实体。 – 2011-05-12 11:26:17

+0

谢谢。我正在使用Repository&UnitofWork模式。我不清楚,并认为自我跟踪是必要的。通过您的反馈,POCO会很好。你会推荐离开自我跟踪POCO到位,所以如果我决定通过WCF公开我可以吗? – markpcasey 2011-05-12 12:31:05