我已经编程了一段时间并且之前使用过LINQ-To-SQL和LINQ-To-Entities(虽然在使用实体时它已经处于实体/表1-1关系 - 即与L2SQL没有太大区别)
我一直在阅读有关控制反转,工作单元,POCO和存储库模式的大量阅读,并希望在我的新应用程序中使用此方法。
我正在努力寻找一个清晰,简明的EF4初学者指南,它不会假设EF1的知识。
我需要回答的具体问题是:
代码优先/型号第一?关于EF4的优点/缺点(即如果我先做代码会发生什么,以后更改代码并需要重新生成我的数据库模型 - 数据是否会被保留,转换或删除?)
假设我要进行代码优先(我想看看EF4如何将其转换为数据库模式)我该如何实际开始?我经常看到有实体图表的文章说“所以这是我的实体模型,现在我要......” - 不幸的是,我不清楚他们是否在设计师中创建了模型,将其保存到生成代码然后停止任何进一步的自动代码生成 - 或 - 他们编码(POCO)?类和不知何故将它们导入到deisgner视图中?
我认为我真正需要的是理解“魔法”的来源以及如何自行添加它,如果我不是直接从数据库生成EF模型的话。
我知道这个问题有点模糊但我不知道我不知道 - 所以任何输入/更正/澄清都会受到赞赏。
毋庸置疑,我不希望有人坐在这里教我EF - 我只是喜欢一些好的教程/论坛/博客等。对于完整的实体新手
答案 0 :(得分:56)
这些文章可能会引起人们的兴趣...该系列文章真正涉及POCO方法的优点和缺点。
在这些文章中,作者提到了未来的文章,这些文章描述了实现Repository和Unit of Work模式的最佳实践,但我找不到它们。这些文章写得很好,我想从这位作者那里阅读更多内容。
答案 1 :(得分:11)
我遇到过这个问题:http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx
首先为您提供代码的一步一步。它确实需要EF4的CTP 3(从该文章下载链接)。
这与我所追求的非常接近(尽管理想情况下,不依赖于CTP的解决方案会更受欢迎)
答案 2 :(得分:7)
我建议您花半小时左右的时间在当前的VS中生成稳定的EF1.0型号。这将使您在理解EF 4.0的隐喻和概念方面有很长的路要走。只需添加一个简单的客户,产品和订单数据库...我建议您自己做,而不是使用Northwind。
答案 3 :(得分:4)
这是一个很好的问题,但随着实体框架的不断成熟,很难保持最新状态。 Microsoft's EF page可能是保持最新状态的最佳起点{/ 3}}。
我在Googling(专注于Code First)时发现了一些其他有用的链接:
答案 4 :(得分:3)
你可以把Lerman的书或者像“Pro linq对象关系映射”这样简单的东西。除了现在你应该禁用代码生成并直接映射到edmx csdl中的模型(或创建自己的POCO生成器)之外,所有概念仍与POCO相同。所有映射原则也是相同的。无论如何,在运行时你正在使用从你的POCO对象派生的代理,所以你应该关注拦截支持(POCO属性的虚拟化)。
答案 5 :(得分:3)
还有这些教程:
答案 6 :(得分:2)
这是实体框架的POCO模板上的walkthrough看起来非常好。您可能还想查看ADO.NET team blog。如果你想从头开始(EF v1.0)作为EF知识的基础,我发现Julia Lerman的Programming Entity Framework书非常完整。
答案 7 :(得分:2)
没有代表对答案发表评论,但这是Jinkinz答案的后续跟进:
在Entity Framework 4.0中使用存储库和工作单元模式:
答案 8 :(得分:1)
Julia Lerman有a nice series of introductory videos,每次约10分钟。它们是介绍性的,但有很多实用的技巧可以解决一些潜在的学习障碍。我特别喜欢她使用SQL Server Profiler观看实际SQL的演示。
答案 9 :(得分:1)
如果您打算使用断开连接的cenarios,我建议您阅读Julie Lerman的书:“编程DbContext”,特别是第4章。
我在博客等中发现了很多例子,但几乎所有的例子都是关于联系的内容。
我也开始了。这些书给了我很多帮助。顺便说一句,我买了她的三本书。
答案 10 :(得分:0)
我正在寻找相同的答案并遇到http://www.dotnetcurry.com/ShowArticle.aspx?ID=599
在链接的末尾,几乎没有链接可以让您使用Entity Framework 4。
希望这有帮助
答案 11 :(得分:0)