2013-04-29 106 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