Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 生成数据库-没有执行SQL选项?_.net_Entity Framework_Entity Framework 4.1_Ef Model First - Fatal编程技术网

.net 生成数据库-没有执行SQL选项?

.net 生成数据库-没有执行SQL选项?,.net,entity-framework,entity-framework-4.1,ef-model-first,.net,Entity Framework,Entity Framework 4.1,Ef Model First,我一直在努力学习一些关于如何在MVC中使用模型优先方法创建DB的教程。我已经在designer中创建了实体,并试图从模型中生成DB。它创建SQL文件很好,但我似乎无法执行它?我别无选择?当我右键单击文件时,执行选项不可用;当我打开文件并在上下文中右键单击时,该选项不可用。我曾尝试连接到一个空白数据库,然后在此数据库上使用模型实体创建实体模型,然后尝试从模型生成一个数据库,但仍然没有从VS2010 express中执行sql的选项。 它不在那里有什么原因吗 问题2 我喜欢使用模型优先的方法,因为我

我一直在努力学习一些关于如何在MVC中使用模型优先方法创建DB的教程。我已经在designer中创建了实体,并试图从模型中生成DB。它创建SQL文件很好,但我似乎无法执行它?我别无选择?当我右键单击文件时,执行选项不可用;当我打开文件并在上下文中右键单击时,该选项不可用。我曾尝试连接到一个空白数据库,然后在此数据库上使用模型实体创建实体模型,然后尝试从模型生成一个数据库,但仍然没有从VS2010 express中执行sql的选项。 它不在那里有什么原因吗

问题2
我喜欢使用模型优先的方法,因为我发现所有实体及其关系的图形表示都很容易理解,而且我喜欢所有的CDB访问类都是在点击按钮时创建的。然而,MVC3的大多数示例似乎使用代码优先的方法。使用代码优先于模型优先有很大的好处吗?哪种方法更容易掌握?我来自DB背景,当我以前做过一些asp编码时,DBs总是先到位:

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


只要选择你更喜欢哪一个,或者哪一个最适合你的情况,即如果你已经准备好了数据库,或者你是从空白开始的

我观看了model first教程,无法右键单击并执行从实体数据模型生成的sql。我在网上找到了答案。我必须在整个sql文件中删除关键字GO,然后删除顶部写有USE。。。等等,然后在DatabaseExplorer窗口中右键单击DatabaseMDF,然后单击NewQuery4将新查询窗口中的SelectfromBlah替换为我修改过的sql代码。5当我在新查询窗口中右键单击时,现在我可以选择执行sql。它给出了一个警告,但随后说它成功完成了,并且在所有这些之后,它的工作方式与视频中的一样。在我找到的文章中有一个更好的图片演练


在我看来,“模型优先”比“代码优先”要酷得多,但前提是像我这样的初学者在调整数据模型和重新生成数据库时,有一种简单的方法可以重新播种数据。我看到的唯一例子是代码优先。

谢谢你的回答,我在某处读到的一个好处是,当首先使用代码时,不需要好友类?但是在Model first和Db first中,因为类是自动生成的,所以可能必须使用buddy类来添加更多属性,而且任何数据注释都必须在buddy类中完成,这有点糟糕,因为拥有额外的克隆类会使代码加倍。看起来无论如何我都会采用代码优先的方法,因为我无法从by Model entity SQl文件生成DB,除非有人告诉我为什么没有executesql选项:是的,确实如此。您可以首先在代码中轻松地注释类,而不必使它们成为部分类。但在我的建议中,这一具体方面并不是问题。它可能会创建更多的文件,但是对于新的东西,比如新的MvcScaffolding,它非常有用。我正在从脚手架创建我的应用程序的基本结构,我不想在控制器等中重新创建我的特殊方法。因此,我可以使用partial,然后您可以使用脚手架重新创建/覆盖控制器,而不会造成很大损失。这只是一个例子。。这同样取决于具体情况,但在我看来,使用部分代码并不是一件坏事。谢谢dampe,您知道或者有任何示例场景,其中一个使用模型优先于代码,反之亦然?还知道为什么我不能执行生成的SQl文件吗?嗯。。模型优先和代码优先基本上是一样的,但是对于那些喜欢可视化设计模型而不是硬编码模型的人来说。这两者之间可能没有任何其他因素。这真的是你的喜好问题。你必须把它当作可能的解决办法。。然后你选择你喜欢的。问你的第一个问题:我不太明白你到底想做什么。最近我除了“代码优先”之外没有做过其他工作,所以可能对此无能为力。感谢您的帮助dampe,我将尝试发布关于“模型优先”和在新线程下执行生成的sql文件的第一个问题。