指定的命名连接在配置中找不到,不打算与EntityClient提供程序一起使用,或者无效

我在解决方案中有两个项目。

  1. PizzaSoftware.Data
  2. PizzaSoftware.UI

在Data项目中,我有我的Entity Framework模型,它连接到我的数据库。

我的UI项目有一个项目引用数据,这里是它的样子:

在此处输入图像描述

我在UserControls文件夹中创建了一个用户控件。

using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using PizzaSoftware.Data; namespace PizzaSoftware.UI.UserControls { public partial class AutoCompleteTextBox : UserControl { AutoCompleteStringCollection completeCollection = new AutoCompleteStringCollection(); public AutoCompleteTextBox() { InitializeComponent(); } private void AutoCompleteTextBox_Load(object sender, EventArgs e) { CustomerRepository repo = new CustomerRepository(); var customers = repo.FindAllCustomers().ToList(); foreach (var customer in customers) { completeCollection.Add(customer.Name); } txtSearchBox.AutoCompleteMode = AutoCompleteMode.Suggest; txtSearchBox.AutoCompleteSource = AutoCompleteSource.CustomSource; txtSearchBox.AutoCompleteCustomSource = completeCollection; } } } 

当我尝试将此用户控件拖到设计窗格中时,我收到问题标题中的错误。

这是我的连接字符串的样子:

   

可能导致此错误的原因是什么?

在app.config中,您的连接字符串看起来像..

  connection string=" Data Source=.\SQLEXPRESS; Initial Catalog=SaharaPizza; Integrated Security=True; MultipleActiveResultSets=True " 

请注意“。 尝试将其更改为单引号’

将来自PizzaSoftware.Data的App.Config中的从PizzaSoftware.UI复制到web.config并添加到web.config

    

我刚刚发现如果应用程序的虚拟目录是从VS2010在IIS中从网站根目录创建的两个级别,则会发生此错误。 不确定为什么会发生,需要进一步调查。 例如,如果您的应用程序位于此路径中: /admin/advertiser如果您的IIS站点中没有/admin虚拟目录,则会出现错误。

我所做的只是在我的.../intepub/wwwroot创建了一个空的admin目录,错误消失了。

您将发现在执行上述步骤之前您将无法开始调试。

我们过去在团队中遇到过这个问题,需要花一些时间才能记住,但这正是我们之前修复它的方式。

连接字符串看起来像是EntityClient提供程序的有效字符串,所以我的猜测来自exception消息“在配置中找不到指定的命名连接”。

配置中的连接字符串的名称是“SaharaPizzaEntities”。 在创建派生对象上下文时,是否明确指定了“命名连接”?

生成的对象上下文类有几个构造函数,一个是无参数的:

 public EntityModelContainer() : base("name=EntityModelContainer", "EntityModelContainer") 

name=EntityModelContainer是连接字符串名称,必须与配置文件中的连接字符串匹配(“SaharaPizzaEntities”)。 您可以更改配置文件中的名称,也可以使用第二个构造函数,该构造函数允许明确定义连接字符串名称:

 public EntityModelContainer(string connectionString) : base(connectionString, "EntityModelContainer") 

我有同样的问题,所以我正在使用像你这样的2线程,我认为这是因为在库中没有运行,然后我把它放在主项目中,然后开始工作成功完成。 这可能是一个解决方案,而不是你需要的,但你可以解决这个问题

请原谅我的英语。

我希望这可以帮到你

问题很容易解决。 只需将连接字符串从Aap.Config复制到Web.config文件,这肯定会运行您的应用程序。 这适合我。
当您在另一个项目中的数据类/实体和单独项目中的WebPages时,会发生此错误。

我在项目中也遇到了同样的问题。 我有3个不同的项目

  1. 我在其中添加了entity framework的数据。 这个项目的App.config文件包含连接字符串
  2. 演示者:与我的演示者
  3. 查看:使用UI。

我刚刚在View的app配置中复制了Connection字符串,它运行正常。

并且问题的原因是“”“连接字符串在本地不可用,需要”“”。

这是一个不起作用的示例连接字符串

给出连接字符串的错误是

    

问题在于路径

请参阅连接字符串中使用的*

 "metadata=res://*/IemrWebs.csdl|res://*/IemrWebs.ssdl|res://* 

将*替换为放置edmx文件的命名空间

在您的appconfig文件中放置名称空间而不是*

我的edmx文件的命名空间是IemrWebs.Data.Model所以我用IemrWebs.Data.Model替换了*,见下面它正在工作下面是正确的连接字符串

   

我遇到了同样的问题,我尝试了所有提到的方法。 最后我按照提到的解决了它。 在我的情况下,我有单独的数据层和表示层。 在我的app.config(数据层)我有这样的连接。

  

在我的web.config我手动配置连接如下:

  

它给了我与上面提到的相同的例外。 所以我通过在web配置文件中添加app.config值来解决它。

我的最终web.config文件如下:

      

我认为您的配置文件不在Web项目中,它在其他DLL中….不太确定…但您的连接字符串应该在正在执行的项目的web.config中…