3

我一直在尝试遵循一些关于如何在 MVC 中使用模型优先方法创建数据库的教程。我已经在设计器中创建实体并尝试从模型生成数据库。它可以很好地创建 SQL 文件,但我似乎无法执行它?我没有办法这样做吗?当我右键单击文件时,执行选项不可用,当我打开文件并在上下文中右键单击时,该选项不可用。我尝试连接到一个空白数据库,然后使用模型实体在该数据库上创建实体模型,然后尝试从模型生成数据库,但仍然无法从 VS2010 express 中执行 sql。有没有它不存在的原因?

问题 2 我喜欢使用模型优先方法,因为我发现所有实体及其关系的图形表示很容易理解,而且我喜欢通过单击按钮创建所有 C# Db 访问类的事实。然而,MVC 3 的大多数示例似乎都使用代码优先方法。使用代码优先而不是模型优先有很大的好处吗?哪种方法更容易掌握?我来自数据库背景,当我确实做了一些 asp 编码时,数据库总是首先到位:)

4

2 回答 2

1

广告 2:如何使用 EF 的三种可能方式中的任何一种都没有太大的好处(代码优先、数据库优先、模型优先)。它们的存在是为了适应不同的场景和不同的用户 afaik。
我个人在开始新项目时首先喜欢代码,因为我可以通过编写类更快地准备我的实体。这是原型制作的好而快速的方法,但是一旦您需要创建更复杂的模型,它就会变得有点困难。您必须接触 FluentAPI 并了解有关约定等的更多信息。

只需选择您更喜欢哪一个,或者哪一个最适合情况(即,如果您已经准备好数据库,或者您从空白开始)。

于 2011-04-24T11:34:56.853 回答
1

我观看了模型第一教程,我无法右键单击并执行从实体数据模型生成的 sql。我在网上找到了答案。我必须(1)从整个 sql 文件中删除关键字“GO”,然后(2)删除顶部显示“USE ... blah blah”的行,然后(3)右键单击数据库 mdf数据库资源管理器窗口并单击“新查询” (4) 用我修改后的 sql 代码替换新查询窗口中的“select from blah blah”。(5) 当我在新的查询窗口中右键单击时,现在我可以选择执行 sql。它发出警告,但随后表示它已成功完成(并且在所有这些之后它就像在视频中一样工作)。在我发现http://www.telnet80 的文章中有一个更好的图片演练。

在我看来,模型优先比代码优先要酷得多,但前提是像我这样的初学者在最终调整数据模型和重新生成数据库时可以轻松地重新播种数据。我见过的唯一例子是代码优先。

于 2011-05-25T06:05:38.417 回答