Asp.net mvc 实体框架代码首先来自数据库+MVC

Asp.net mvc 实体框架代码首先来自数据库+MVC,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我目前正在做一个ASP.NET项目,这是我以前没有做过的,我需要使用实体框架来访问数据库。我已经有了一个数据库,下面是本教程: 我已设法让Entity Framework为数据库中的表创建类,但它已在我的视图/主目录中创建了所有类,如下所示: 但是从我对MVC的理解来看,这些应该放在Models目录中吗?将这些生成的文件剪切并粘贴到模型中是否安全,或者我是否会在将来遇到问题,因为它仍将尝试使用View/Home?将它们移动到模型中应该是安全的。这些模型是编译的,不是作为网站内容部署的,因此ASP

我目前正在做一个ASP.NET项目,这是我以前没有做过的,我需要使用实体框架来访问数据库。我已经有了一个数据库,下面是本教程:

我已设法让Entity Framework为数据库中的表创建类,但它已在我的视图/主目录中创建了所有类,如下所示:


但是从我对MVC的理解来看,这些应该放在Models目录中吗?将这些生成的文件剪切并粘贴到模型中是否安全,或者我是否会在将来遇到问题,因为它仍将尝试使用View/Home?

将它们移动到模型中应该是安全的。这些模型是编译的,不是作为网站内容部署的,因此ASP.NET不关心它们的确切位置

不过,您可能需要更新模型的名称空间。我猜这些模型是使用类似YourNamespace.Views.Home的名称空间创建的,您可能希望将其更改为YourNamespace.models


另外,如果有模型引用,请确保将名称空间更新为模型引用。除了cshtml文件中的任何引用之外,您将收到任何缺少的引用的编译错误。

只需删除EF创建的所有内容,然后将ADO.NET实体数据模型.edmx文件再次添加到正确的文件夹中,就会容易得多


在问题的EF指南的步骤3中,添加ADO.NET实体数据模型时,请确保将其添加到Models文件夹中。右键单击Models文件夹,然后添加新项…

如果您已经有一个数据库,那么您的实体框架,然后您使用的是数据库优先的模型,而不是代码优先的模型。您在哪里添加了.edmx文件?您可能已将其添加到视图下的主文件夹中。我将首先按照官方EF指南代码添加到现有数据库选项中。我不知道什么是edmx文件。哦,我明白了。见下面我的答案。