昨天我参与了一个项目,我用Repository模式升级到Entity Framework 4。在一篇文章中,我已经读过有必要关闭自定义工具生成器类,然后手动编写类(类似于entites)。我可以这样做,我使用POCO Entity Generator然后删除了新生成的文件.tt和所有从属.cs类。然后我自己写了“实体课”。
我添加了存储库模式并在业务层中实现了它,然后实现了一个WCF层,它应该从业务层调用方法。通过从表示层调用插入(添加)方法,一切正常。但是如果我调用任何应该返回某个类的方法,那么我会得到一个错误(连接被服务器中断)。
我认为序列化存在问题,或者我错了?如何通过这个问题解决?
我正在使用Visual Studio S2010,实体框架4,C#。
更新
我上传了这个项目,希望有人能帮助我! link text
更新2:
我的问题:
答案 0 :(得分:1)
为什么POCO好(利弊)?
什么时候应该使用POCO?
POCO +存储库模式是一个不错的选择吗?
对于WCF
POCO-您手动更改了跟踪,
STE自动更改跟踪已完成。
POCO课程应该由我自己编写还是我可以使用自动生成的POCO课程?
答案 1 :(得分:0)
关于您的WCF序列化问题,在t4模板中,我们需要设置ProxyCreationEnabled = false;在ContextOptions上
答案 2 :(得分:0)
对于POCO序列化,您需要ProxyDataContractResolver。
您可以查看this MSDN Walkthrough article,了解如何构建可应用于服务合同的自定义属性,以序列化POCO代理类型。