我正在研究ADO.NET实体框架与单元测试的结合。推荐的方式是由斯科特·艾伦描述:使用ADO.NET实体框架和单元测试的实际经验
Testability and Entity Framework 4.0
文章涉及code generation with POCOS。
我的第一印象:介绍和维护这种架构的手工努力很高。在深入潜水之前,我对任何真实世界的体验都感兴趣。
我正在研究ADO.NET实体框架与单元测试的结合。推荐的方式是由斯科特·艾伦描述:使用ADO.NET实体框架和单元测试的实际经验
Testability and Entity Framework 4.0
文章涉及code generation with POCOS。
我的第一印象:介绍和维护这种架构的手工努力很高。在深入潜水之前,我对任何真实世界的体验都感兴趣。
使用POCO对象可以使单元测试变得更容易,但并不能帮助您制作对这些POCO对象使用LINQ查询的代码可测试的代码。看看this article。它描述了如何在抽象背后隐藏EF,同时仍允许使用LINQ查询。
Scott建议将POCO模板作为选件,而不是要求。你不需要使用它。斯科特的策略也适用于非POCO实体。
如果单元测试是唯一的好处,那么努力会很高。但是,由于你也可以得到一个按照通常理解的模式组织的结构良好的应用程序,所以良好的单元测试实际上只是用Scott的体系结构来锦上添花。
要添加@Craig Stuntz所提供的内容,我建议您查看EF Futures Code-First。它现在在CTP5中,而RC/Beta很快。我最近一直在为两个独立的项目使用它,它很棒。我个人很讨厌使用可视化编辑器,当这应该是由代码真正驱动。我发现POCO对编写项目非常棒。
伟大的文章。这是对主题的详细而有价值的阐述。通过替换一小段代码和在存储库上使用扩展方法,在LINQ to SQL和EF之间切换的直接方式令我印象深刻。而真实的世界体验 - 我在读者的评论中发现了一些。 – 2010-12-21 08:10:35
如果可以,仍然尝试使用POCO对象。国际海事组织使用POCO和提供的方法可能效果最好。并且请不要忘记文章中提到的简短内容;-)。 – Steven 2010-12-21 20:43:59