11

我正在尝试将我的模型优先项目转换为代码优先项目,因为我可以看到与图形设计师处理模型会变得很困难。不幸的是,通过我所有的谷歌搜索,我找不到一个很好的参考来描述如何进行代码优先开发。大多数资源都已过时(因此过时,他们将其称为纯代码),而我能找到的其他参考资料似乎假设您了解上下文构建和代码优先的基础知识(例如,它们引用代码构建上下文,但没有描述代码实际应该去哪里,以及它是如何实际运行的)。

是否有任何适合代码优先开发的资源,描述如何将您的 POCO 实体映射到数据库模式?


编辑:好吧,我现在先放弃代码。我在答案中链接到的入门文档似乎有一些缺陷(例如,上下文构建和 EntityConnection dbConnection 类型的一些细节,以及一些关系映射代码没有按照他们编写的方式编译)。我花了 2 天时间试图找到任何方法来让它工作,我接近了(我认为)但最终失败了,谷歌完全没有帮助。

截至目前,我认为继续进行模型优先开发对我来说更有效率,并希望到 edmx 变得笨拙时,代码优先不再处于 CTP 状态,并且有更好的(就像在某些实际存在的情况下一样) ) 文档。

我将 POCO 上的答案标记为正确的答案,因为虽然它实际上不是代码优先,但如果你想在代码中包含实体,它可能是最好的选择,即使它需要一个数据库和一个从中生成的 EDMX在它起作用之前。

4

5 回答 5

2

好吧,看来我已经接近了一点。

似乎 Code-First 并未包含在 VS2010 的最终发布版本中。因此,为了使用它,您必须在http://www.microsoft.com/downloads/details.aspx?FamilyID=af18e652-9ea7-478b-8b41-8424b94e3f58&displayLang=en下载实体框架 CTP 3 。这似乎是 EF 的最新 CTP。

安装后,您必须添加对 Microsoft.Data.Entity.CTP 的引用。

最后,那个 CTP 下载页面把我带到了http://blogs.msdn.com/adonet/pages/feature-ctp-walkthrough-code-only-for-the-entity-framework.aspx。虽然页面上的日期是 2009 年 6 月,但它声称它已经更新并且 CTP(2 月发布)指向它,因此它可能仍然准确。明天我会用它来看看它到底有多准确。

于 2010-05-23T05:08:18.747 回答
2

享受新的最棒的 EF CTP 4。有很多新的改进和一些很好的资源来学习更多。

http://blogs.msdn.com/b/adonet/archive/2010/07/14/ctp4announcement.aspx

http://blogs.msdn.com/b/adonet/archive/2010/07/14/ctp4piwalkthrough.aspx

http://blogs.msdn.com/b/adonet/archive/2010/07/14/ctp4codefirstwalkthrough.aspx

于 2010-07-16T03:57:37.003 回答
1

也许是你的追求。

实际上,您只需使用您的 EF 模型来定义到 DB 的映射而不是生成类,并创建一个上下文以通过 EF 模型映射将您的对象链接到 DB。

于 2010-05-23T18:14:04.317 回答
0

添加新答案作为仅供参考。

借助最新的 Code-first CTP 和 Scott Gu 的教程(在此处找到),我很快就将我的模型优先系统转换为代码优先。

我不知道 API 会发生多少变化,但现在至少有很好的信息可以首先开始使用代码。

于 2010-11-05T13:39:43.957 回答
0

此处的 ASP.NET MVC 站点上的演示首先提供了一些出色的代码示例。在 5. Models (Data) 中,演示本身首先使用实体​​框架代码调用。

于 2011-05-13T15:30:51.560 回答