我必须在某个地方改变某些东西,但是如果我能弄明白它是什么就该死。
我有一个DAL可以处理我的SQL Server数据库的所有数据访问(就像DAL一样)。这包括实体模型,存储库类和App.Config文件中的连接字符串。
在这篇文章的某个地方,我必须改变一些东西,现在我每次尝试在我的MVC应用程序上查看页面时都会遇到以下异常:
指定的命名连接是 要么在配置中找不到, 不打算用于 EntityClient提供程序,或无效。
这是继承<IEnumerable<DataAccess.Layer.Class>>
的任何页面。我错过了什么?
连接字符串:
<add name="JobTrackEntities"
connectionString="metadata=res://*/JobTrackDataModel.csdl|res://*/JobTrackDataModel.ssdl|res://*/JobTrackDataModel.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Users\Phil\Documents\Visual Studio 2010\Projects\JobTrack\trunk\JobTrack\App_Data\JobTrack.MDF";Integrated Security=True;User Instance=True;MultipleActiveResultSets=True'" providerName="System.Data.EntityClient" />
Designer.cs片段:
public JobTrackEntities() :
base("name=JobTrackEntities", "JobTrackEntities")
{
this.OnContextCreated();
}
/// <summary>
/// Initialize a new JobTrackEntities object.
/// </summary>
public JobTrackEntities(string connectionString) :
base(connectionString, "JobTrackEntities")
{
this.OnContextCreated();
}
/// <summary>
/// Initialize a new JobTrackEntities object.
/// </summary>
public JobTrackEntities(global::System.Data.EntityClient.EntityConnection connection) :
base(connection, "JobTrackEntities")
{
this.OnContextCreated();
}
答案 0 :(得分:2)
如果您在另一个项目中引用 ADO.NET实体项目,请查看
答案 1 :(得分:0)
冒着获得投票的风险,我注意到,每当我使用S2L dbml类时,当我通过界面而不是代码更改dbml文件时,我遇到了同样的问题。
它会重置我的连接字符串,我需要将其更改为从web.config中读取。
不知道这是你的问题@Phil。
如果没有,你能提供更多信息吗?
答案 2 :(得分:0)
唯一其他我可以看到可能导致问题的是使用硬编码路径。您是否尝试插入\?
C:\\Users\\Phil\\Documents\\Visual Studio 2010\\Projects\\JobTrack\\trunk\\JobTrack\\App_Data\\JobTrack.MDF
另外我相信你已经检查并仔细检查了路径是否正确? :)
您是否尝试过获取服务器路径,然后将app_data \ jobtrack.mdf添加到其中?
你有没有试过摆脱entirley的路径?我问因为,我忘了在什么情况下这是正确的。.Net会在附加到数据库时推断路径和app_data文件夹。再次,你需要研究这个。
有时,运行ASP.NET配置实用程序可以修复项目,中断项目或确定问题所在。
答案 3 :(得分:0)
我遇到了同样的问题,在尝试修复它之后,我有很多不同的方法,我认为VS正在淘汰,所以我用新项目(实体框架和测试项目)简化了解决方案,从dll复制了配置文件进入测试项目,我收到了同样的错误。然后我从测试项目中删除了配置文件,添加了一个新的配置文件,将连接字符串内容复制到配置文件中并且工作正常。