2013-04-29 105 views
0

我已经在两个项目中拆分了我的mvc4应用程序。主要项目中引用的一个主要模型和一个模型。然而,当我尝试创建一个CRUD控制器我ControllerWithContext.tt(-1,-1)得到一个异常,创建CRUD控制器

FileNotFoundException异常:无法加载文件或assebmly ....或 它的依赖之一。该系统找不到指定的文件。

出了什么问题?

+0

你能不能添加更多的代码,这也正是你所引用您的文件?它似乎就像你设置的方式有缺失或不正确的设置。将模型完全从项目中分离出来也是必要的。 MVC领域可以很好地工作,而不需要任何引用问题。 – Nomad101 2013-04-29 08:49:20

+0

你模型组件是否包含POCO实体?你使用任何自动代码生成策略? – 2013-04-29 08:57:35

+0

我正在使用EF代码的第一种方法与普通POCO为我的模型,它驻留在ModelProject中。在我的主要mvc 4项目中,我添加了对模型项目的引用,仅此而已。 – Jim 2013-04-29 09:04:18

回答

1

我想问题来自EF连接字符串。通常,当你想使用一个嵌入的资源,你应该设置Metadata在EF构造类似如下:

Metadata=res://<assemblyFullName>/<resourceName>. 

您还可以使用*通配符代替<assemblyFullName>类似如下:

Metadata=res://*/model.csdl| ... 

其中model是youe .EDMX文件的名称。它会导致EF在运行时在文件的以下位置搜索:

  • 调用程序集。
  • 引用的程序集。
  • 应用程序的bin目录中的程序集。

如果你正试图从另一个项目得到的模型,你应该在元数据中输入项目的全名:

Metadata=res://MyModelPrj/model.csdl | ... 

最后,如果您的解决方案只包含.edmx文件,你可以简单地使用以下命令:

Metadata=res://*/ 

请注意,这只有当你在整个解决方案只有一种模式。如果您的解决方案中有多个模型,则会导致另一个错误...!

更多信息是here