我已将我的 mvc4 应用程序拆分为两个项目。主项目中引用的一个主模型和一个模型。但是,当我尝试创建 CRUD 控制器时,出现异常ControllerWithContext.tt(-1,-1)
,
FileNotFoundException: 无法加载文件或程序集 .... 或其依赖项之一。该系统找不到指定的文件。
怎么了?
我已将我的 mvc4 应用程序拆分为两个项目。主项目中引用的一个主模型和一个模型。但是,当我尝试创建 CRUD 控制器时,出现异常ControllerWithContext.tt(-1,-1)
,
FileNotFoundException: 无法加载文件或程序集 .... 或其依赖项之一。该系统找不到指定的文件。
怎么了?
我认为问题出在 EF 连接字符串上。通常,当您想使用嵌入式资源时,您应该Metadata
在 EF ConStr 中设置如下:
Metadata=res://<assemblyFullName>/<resourceName>.
您也可以使用*
通配符,而不是<assemblyFullName>
像下面这样:
Metadata=res://*/model.csdl| ...
model
你的 .EDMX 文件的名称在哪里。它会导致 EF 在运行时在以下位置搜索文件:
如果您尝试从另一个项目中获取模型,则应在元数据中输入项目的全名:
Metadata=res://MyModelPrj/model.csdl | ...
最后,如果您的解决方案仅包含一个 .EDMX 文件,您可以简单地使用以下内容:
Metadata=res://*/
请注意,这仅在整个解决方案中只有一个模型时才有效。如果您的解决方案中有多个模型,它只会导致另一个错误......!
更多信息在这里