1

决定深入研究重新创建一个网站,使其成为一个 ASP.NET MVC Web 应用程序。我们最初使用实体框架,因为它工作得很好,所以想继续使用它。在阅读时,注意到没有用于 MVC 应用程序的 App_Code/ 文件夹之类的东西,并且大多数人都在为他们的需要创建一个类库。所以我最终做的是在同一个解决方案中创建我的 MVC 应用程序和一个类库,并且 MVC 应用程序正在引用类库。类库中有我的 EDMX 实体数据模型文件,因为我的一些类引用了它,我认为将它放在库中引用是最容易的。所以这是一张图片我的解决方案布局是什么。但是当我构建和运行网站时,我在引用实体数据模型的页面上遇到错误。这是错误的图片。

所以我想,如果我把 EDMX 放到我的模型文件夹中会怎样,因为错误看起来像是在抱怨找不到实体。这是我现在采取行动的解决方案的图片。但是现在,我得到了一个不同的错误(图片)。我有点不知道从这里去哪里。我布置和设计一切的方式是正确和最有效的方式吗?如果没有,有人可以给我一些建议吗?

谢谢,真的很感激!

4

1 回答 1

2

是的,您应该能够在类库中拥有 edmx 并在您的主项目中引用。第一个错误可能是由于连接字符串不正确(查看此博客文章),但您也可能以某种方式更改了 edmx 文件的构建操作,请确保它是“实体部署”。

第二个错误可能是因为您将类库中的 edmx 复制到了 Models 文件夹中,并且它仍在引用旧的命名空间。要解决此问题,请在设计器视图中打开 edmx 并单击背景。属性窗口中的属性之一是命名空间,请确保将其设置为您要保留它的新位置。

编辑: 要尝试的一些事情:

  • 清理并重建项目
  • 删除错误消息中引用的 Temporary ASP.NET Files 文件夹
  • 仔细检查您的 cshtml 文件是否有对 URG_MVC.Models 命名空间的旧引用。例如,错误中的行应该是IEnumerable<URGLibrary.Proposal>
  • 右键单击 edmx 文件并选择运行自定义工具以重新生成模型文件
于 2013-05-21T16:34:27.067 回答