【问题标题】:MVC pattern. "Could not find the connection string with the name ... in the application configuration file"MVC 模式。 “在应用程序配置文件中找不到名称为 ... 的连接字符串”
【发布时间】:2016-04-12 16:24:55
【问题描述】:

我的 WinForm 应用实现了 MVC 模式,由两个项目组成。第一个包含视图和控制器层,第二个包含模型层(类库)。

应用程序必须从数据库中获取信息(我使用 MS SQL Server)。

在第二个项目(模型层)中,我有 ADO.NET 模型、使用数据库的方法以及 app.config 中的适当连接字符串。但是当我运行应用程序并尝试对数据库进行查询时,出现错误“在应用程序配置文件中找不到名称为 ... 的连接字符串”。

我猜当控制器调用模型的方法来查询数据库时,应用程序试图在主项目的 App.config 文件中找到连接字符串,但在那里找不到。我觉得用Controller和View在项目中创建连接字符串是不对的。

我怎样才能以正确的方式解决问题?

【问题讨论】:

    标签: string design-patterns model-view-controller connection app-config


    【解决方案1】:

    App.config(或Web.config,如果适用)属于应用程序,不属于任何类库。

    如果您的控制器/视图层是一个 Windows 窗体项目,而您的模型层是一个类库项目,那么 App.config 属于 Windows 窗体项目。

    我觉得用Controller和View在项目中创建连接字符串是不对的。

    它与控制器和视图无关。 App.config 不是 MVC 模式的一部分。它与为环境配置应用程序有关。任何给定的类库都应该可以跨应用程序和环境移植。任何给定的应用程序都应配置为在其部署到的环境中执行。


    基本上,将您的App.config 值放入应用程序的App.config。

    【讨论】:

    • 我在 Winforms 项目的设置中添加连接字符串,运行应用程序但得到错误:“System.Data.Entity.Infrastructure.UnintentionalCodeFirstException”
    • @Andrei:你在谷歌上查过这个例外吗?您使用实体框架的方式与您提供的连接字符串之间似乎存在冲突。这可能会有所帮助:stackoverflow.com/questions/5940616/…
    • DbContext类的OnModelCreating方法出现错误。此方法在初始化 LINQ 数据库查询时自行调用。
    • 谢谢,我会读的。顺便说一句,在错误的 cmets 中有一个短语“在 Code First 模型中使用上下文,代码是从 EDMX 文件创建的,用于开发 DataBase First 或 Model first。这种组合的正确工作是不可能的”
    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 2013-04-02
    • 2012-06-14
    • 2016-12-07
    • 2012-09-19
    • 2022-01-11
    • 1970-01-01
    • 2013-03-28
    相关资源
    最近更新 更多