entity framework4 / POCO – 从哪里开始?

我已经编程了一段时间,之前已经使用了LINQ-to-SQL和LINQ-to-Entities(尽pipe在使用实体时它已经处于Entity / Table 1-1关系 – 即与L2SQL没什么区别)

我一直在大量阅读有关控制反转,工作单元,POCO和存储库模式的信息,并希望在我的新应用程序中使用这种方法。

在那里我正在努力find一个清晰,简洁的EF4初学者指南,不会假定EF1的知识。

我需要回答的具体问题是:

首先代码/模型? 关于EF4的优点/缺点(例如,如果我先做代码,在以后更改代码并需要重新生成我的数据库模型会发生什么情况 – 数据是否会保留并转换或丢失?

假设我要去代码优先(我想看看EF4如何将其转换为数据库模式),我怎么才能真正开始? 很多时候我已经看到有实体图的文章,声明“所以这是我的实体模型,现在我要…” – 不幸的是,我不清楚他们是否在devise器中创build模型,将它保存到生成代码,然后停止任何进一步的自动代码生成 – 或者 – 他们已经编码(POCO)? 类,并以某种方式将它们导入deisgner视图?

我想我真正需要的是理解“魔法”来自何处以及如何直接从数据库生成EF模型。

我知道这个问题有点含糊,但我不知道我不知道 – 所以任何input/更正/澄清赞赏。

不用说,我不希望任何人坐在这里教我EF – 我只是喜欢一些很好的教程/论坛/博客/等。 为完整的实体新手

这些文章可能是有趣的…该系列真正进入POCO方法的优点和缺点。

http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx

http://blogs.msdn.com/b/adonet/archive/2009/05/28/poco-in-the-entity-framework-part-2-complex-types-deferred-loading-and-explicit-loading。; ASPX

http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with-poco.aspx

在这些文章中,作者提到将来的文章描述了实施Repository和Unit of Work模式的最佳实践,但是我找不到它们。 这些文章写得很好,我想阅读更多的作者。

我碰到过这个: http : //blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx

这首先给你一步一步的代码。 它需要EF4的CTP 3(从该文章链接下载)。

这与我之后的情况非常接近(尽pipe理想情况下,不依赖于CTP的解决scheme会更好)

我build议你花半个小时左右的时间,在当前的VS中生成一个稳定的EF1.0模型。 这将帮助您理解EF 4.0的隐喻和概念。 只要掀起一个简单的客户,产品和订单分贝…我build议做你自己的,而不是使用罗斯文。

这是一个很好的问题,但是随着entity framework的不断成熟,这个问题很难跟上。 微软的EF页面可能是最适合未来发展的最佳地点。

我在Googlesearch中find了一些有用的链接(专注于Code First):

  • 使用MVC教程开始使用EF
  • 利用 TechEd 2010的entity frameworkvideo进行代码优先开发
  • Scott Gu在EF4的Code-First Development上的post
  • MSDNentity framework4.1和4.2

你可以拿Lerman的书或者像“Pro linq object-relational mapping”这样简单的东西。 除了现在您应该禁用代码生成并直接映射到edmx csdl中的模型(或者创build您自己的POCO生成器)之外,所有概念与POCO仍然相同。 所有的映射原理也是一样的。 无论如何,在运行时,您正在使用派生于您的POCO对象的代理,因此您应该关注拦截支持(您的POCO属性的虚拟化)。

下面是entity framework的POCO模板的演练 ,看起来不错。 您可能还想查看ADO.NET团队博客 。 如果你想从EF开始(EF v1.0)作为EF知识的基础,我发现Julia Lerman的编程entity framework书非常完整。

没有代表评论一个答案,但这是一个后续Jinkinz答案:

在Entity Framework 4.0中使用存储库和工作单元模式:

http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx

Julia Lerman有一个很好的介绍video系列 ,大约每个10分钟。 它们是介绍性的,但是有很多实用技巧可以解决一些潜在的学习障碍。 我特别喜欢她使用SQL Server Profiler观看实际SQL的演示。

如果你打算使用断开连接的方法,我build议你阅读Julie Lerman的书:“编程DbContext”,在第四章中。

我在博客中发现了很多例子,但是几乎所有的例子都是关于连接的。

我也开始了 这本书帮了我很多。 顺便说一下,我买了她的三本书。

我正在寻找相同的答案,并遇到http://www.dotnetcurry.com/ShowArticle.aspx?ID=599

在链接的末尾,有几个链接可以让你与Entity Framework 4一起滚动。

希望这可以帮助

哇,很多答案。 如何包含一个T4模板的调整版本,一起生成POCO +接口+存储库?

https://entityinterfacegenerator.codeplex.com