指定的命名连接在配置中找不到,不打算与EntityClient提供程序一起使用,或者无效
我在解决方案中有两个项目。
- PizzaSoftware.Data
- 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个不同的项目
- 我在其中添加了entity framework的数据。 这个项目的App.config文件包含连接字符串
- 演示者:与我的演示者
- 查看:使用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中…