0

我的WinForm應用程序實現了MVC模式,並由兩個項目組成。第一個包含View和Controller圖層,第二個包含Model層(類庫)。MVC模式。 「在應用程序配置文件中找不到具有名稱的連接字符串」

應用程序必須從數據庫中獲取信息(我使用MS SQL Server)。

在第二個項目(模型層)中,我有ADO.NET模型,使用數據庫的方法以及app.config中適當的連接字符串。但是,當我運行該應用程序,它試圖向數據庫進行查詢時,出現錯誤「無法找到應用程序配置文件中名稱的連接字符串」。

我想,當控制器調用模型的方法來查詢數據庫應用程序試圖找到主項目的App.config文件中的連接字符串,並找不到它。我認爲在Controller和View項目中創建連接字符串是不正確的。

如何以正確的方式解決問題?

回答

1

App.config(或Web.config在適當情況下)屬於應用程序,而不是任何類庫。

如果您的控制器/視圖圖層是Windows窗體項目,而您的模型圖層是類庫項目,則App.config屬於Windows窗體項目。

I think it's not right to create a connection string in the project with Controller and View.

它與控制器和視圖無關。 App.config不是MVC模式的一部分。它與應用程序的環境配置有關。任何給定的類庫都應該可以跨應用程序和環境移植。任何給定的應用程序都應配置爲在其部署的環境中執行。


基本上,放置在應用程序的App.configApp.config值。

+0

我在Winforms項目的設置中添加連接字符串,運行應用程序,但得到的錯誤:「System.Data.Entity.Infrastructure.UnintentionalCodeFirstException」 – Anrei

+0

@Andrei:你在Google上查找異常嗎?看起來你在使用實體框架的方式和你提供的連接字符串之間存在衝突。這可能有所幫助:http://stackoverflow.com/questions/5940616/model-first-with-dbcontext-fails-to-initialize-new-database – David

+0

錯誤出現在DbContext類的OnModelCreating方法中。此方法在LINQ查詢數據庫初始化的時刻自行調用。 – Anrei

相關問題