EF POCO作为WCF数据合同

时间:2012-11-20 07:21:34

标签: c# wcf entity-framework

May团队一直在进行一些重构,以纠正历史错误。 我们将DataContracts和OperationContracts移出BL层并进入单独的程序集,我们将接口程序集中的依赖关系切断到BL对象,现在通过ChannelFactory而不是生成代理来使用服务。

现在我们要开始将EF集成到支持BL层的DAL中。 由于EF团队每次发布都会做出重大的概念性改变(不是说这不是一件坏事:)),我有点失落。

我想将EF与POCO一起使用,并使这些POCO成为服务的数据合同。没有更新回到数据库。只有进入Web服务器的数据。我的问题是我看到了不同版本的EF的各种解决方案,而且我不知道目前最好的做法是什么......

有人可以帮助我解决这个问题吗?目前的最佳做法是什么?我需要在POCO上设置任何特殊属性或方法才能将它们用作数据合同吗?

1 个答案:

答案 0 :(得分:3)

从EF生成POCO以通过线路传输的最简单,最强大的方法是使用T4模板。事实上 - 如果你使用.net 4.5,EF设计师现在使用T4模板而不是通常的visual studio codegen。

T4生成的POCO应该准备好通过线路传输而不需要添加任何属性,但即使它们是 - 改变T4模板以满足您的需求也是微不足道的。

就最佳实践而言,我认为没有一个“答案”,根据您的需要,有不同的方法。在我看来,通过T4生成POCO是大多数场景的最佳方法,因为您不需要编写任何映射代码,并且您的POCO库与其数据层表示无关。

这是模板下载

http://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313

这是一些教程/资源

http://sharedtolearn.blogspot.co.uk/2010/06/entity-framework-40-and-t4-templates-to.html

http://msdn.microsoft.com/en-us/data/ff717739.aspx

相关问题