我已经编程了一段时间并且之前使用过LINQ-To-SQL和LINQ-To-Entities(尽管在使用实体时它已经处于实体/表1-1关系 - 即与L2SQL没有太大区别)
我一直在阅读有关控制反转,工作单元,POCO和存储库模式的大量阅读,并希望在我的新应用程序中使用此方法 .
我正在努力的是为EF4寻找一个清晰,简明的初学者指南,该指南不承担EF1的知识 .
我需要回答的具体问题是:
代码优先/型号第一?关于EF4的优点/缺点(即如果我先编码,在以后更改代码并需要重新生成我的数据库模型会发生什么 - 数据是否会被保留,转换或丢弃?)
假设我要进行代码优先(我想看看EF4如何将其转换为数据库模式)我该如何实际开始?我经常看到有实体图表的文章说“所以这是我的实体模型,现在我要去...” - 不幸的是,我不清楚他们是否在设计师中创建了模型,将其保存到生成代码然后停止任何进一步的自动代码生成 - 或 - 他们编码(POCO)?类和不知何故将它们导入到deisgner视图中?
我想我真正需要的是理解“魔法”来自何处,以及如果我不是直接从DB生成EF模型,如何自己添加它 .
我知道这个问题有点模糊,但我不知道我不知道 - 所以任何输入/更正/澄清都会受到赞赏 .
毋庸置疑,我不希望有人坐在这里教我EF - 我只是喜欢一些好的教程/论坛/博客/等 . 对于完整的实体新手
12 回答
这些文章可能会引起人们的兴趣...该系列文章真正涉及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(从该文章链接下载) .
这非常接近我所追求的目标(尽管理想情况下,不依赖于CTP的解决方案会更好)
我建议您花半小时左右的时间在当前的VS中生成稳定的EF1.0型号 . 这将使您在理解EF 4.0的隐喻和概念方面有很长的路要走 . 只需添加一个简单的客户,产品和订单数据库......我建议您自己做,而不是使用Northwind .
这是一个很好的问题,但随着实体框架的不断成熟,很难保持最新状态 . 可能最好的起点将是Microsoft's EF page .
在谷歌搜索时我发现了一些其他链接(专注于Code First):
Getting Started with EF using MVC Tutorial
Code First Development with Entity Framework来自TechEd 2010的视频
Scott Gu的帖子Code-First Development with EF4
MSDN Entity Framework 4.1 and 4.2
您可以阅读Lerman的书或简单的内容,如“Pro linq object-relational mapping” . 除了现在你应该禁用代码生成并直接映射到edmx csdl中的模型(或创建自己的POCO生成器)之外,所有概念仍与POCO相同 . 所有映射原则也是相同的 . 无论如何,在运行时,您正在使用从POCO对象派生的代理,因此您应该关注拦截支持(POCO属性的虚拟化) .
还有这些教程:
https://danielwertheim.wordpress.com/2010/05/16/entity-framework-4-ctp3-code-first-vs-linq-to-sql/
https://danielwertheim.wordpress.com/2009/12/20/updates-to-putting-entity-framework-4-to-use-in-a-business-architecture/
这是实体框架的POCO模板上的walkthrough看起来非常好 . 您可能还想查看ADO.NET team blog . 如果你想从头开始(EF v1.0)作为你EF知识的基础,我发现Julia Lerman的Programming Entity Framework书非常完整 .
没有代表对答案发表评论,但这是Jinkinz答案的后续行动:
在Entity Framework 4.0中使用Repository和Unit of Work模式:
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有a nice series of introductory videos,每人约10分钟 . 它们是介绍性的,但有很多实用的技巧可以解决一些潜在的学习障碍 . 我特别喜欢她使用SQL Server Profiler观看实际SQL的演示 .
如果你打算使用断开连接cenarios,我建议你阅读Julie Lerman的书:“编程DbContext”,特别是第4章 .
我在博客等中发现了很多例子,但几乎所有的例子都是关于连接的内容 .
我也开始了 . 这些书给了我很多帮助 . 顺便说一句,我买了她的三本书 .
我一直在寻找相同的答案并且遇到了http://www.dotnetcurry.com/ShowArticle.aspx?ID=599
在链接的末尾,几乎没有链接可以让您使用Entity Framework 4 .
希望这可以帮助
哇,很多答案 . 包含调整版T4模板的示例如何完全生成POCO接口存储库?
https://entityinterfacegenerator.codeplex.com