Entity framework 实体框架连接字符串分析异常

Entity framework 实体框架连接字符串分析异常,entity-framework,entity-framework-4,connection-string,Entity Framework,Entity Framework 4,Connection String,我找不到我的connectionString语法是如何错误的。有人能提出一个解决这个问题的办法吗?我在连接字符串中使用EF时遇到困难。我是EF的新手 我正在使用Sybase Anywhere 12数据库 我在web应用程序引用的单独类库中使用带有EDMX的Table First ObjectContext 我在类库中使用Ninject模块来绑定存储库 我正在使用一个名为“Test”的ODBC数据存储 其他信息EF 4.3.1.0、.NET 4、VS2010 我的主web应用程序web.conf

我找不到我的connectionString语法是如何错误的。有人能提出一个解决这个问题的办法吗?我在连接字符串中使用EF时遇到困难。我是EF的新手

  • 我正在使用Sybase Anywhere 12数据库
  • 我在web应用程序引用的单独类库中使用带有EDMX的Table First ObjectContext
  • 我在类库中使用Ninject模块来绑定存储库
  • 我正在使用一个名为“Test”的ODBC数据存储
  • 其他信息EF 4.3.1.0、.NET 4、VS2010
  • 我的主web应用程序web.config将EF连接字符串复制到它,如下所示:

当我在存储库中初始化实体/对象上下文时(请参见下面的using语句),它返回一个错误:“在配置中找不到指定的命名连接,该连接不打算与EntityClient提供程序一起使用,或者无效。”

我在调试器上打开了CLR异常,发现代码在.NET Framework中抛出错误,如下所示:

EntityConnection.cs

effectiveConnectionOptions=new DbConnectionOptions(setting.ConnectionString,EntityConnectionStringBuilder.Synonyms,false)

生成的edmx设计器:

 /// <summary>
        /// Initializes a new Entities object using the connection string found in the 'Entities' section of the application configuration file.
        /// </summary>
        public Entities() : base("name=Entities", "Entities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }
//
///使用应用程序配置文件“Entities”部分中的连接字符串初始化新的Entities对象。
/// 
公共实体():基(“名称=实体”,“实体”)
{
this.ContextOptions.LazyLoadingEnabled=true;
OnContextCreated();
}
我可以在那里看到我的连接字符串,因此很难解析connectionString。我尝试了许多不同的语法排列,但没有发现它可以接受的任何东西,包括:

  • 为实体文件而不是通配符(例如元数据)显式命名程序集=res://MyDomain/MyEntities.csdl...)
  • 使用Sybase友好的ODBC属性,例如UID而不是UserID,PWD而不是Password,DBN而不是DataSourceName

谢谢。

我让一切正常,我能想到的唯一原因是我删除了我的ASP.NET 4.0临时文件。此外,我还必须补充一点,我改变了我的流程,从使用集成测试来测试这一部分,改为使用单元测试。我没有首先进行单元测试,因为我们的构建服务器上没有数据库

一旦我能够证明它在那里工作,我决定删除我的临时文件。从那以后,一切都开始正常运转。因此,我的应用程序中出现了某种缓存问题。我使用了与上面提到的相同的connectionString


实际上,我使用了元数据“元数据”的域名=res://MyDomain/MyEntitities.csdl“而不是*/MyEntities.csdl。我不打算很快改变域名。事实上,这可能正是导致某些问题的原因,因为我已更改了EF所在的MyEntities.Domain的位置、名称和命名空间。

如何实际设置连接字符串?连接的实际外观如何?抱歉,连接字符串需要特殊的html字符才能显示。现在应该显示良好。谢谢。我想我还不够清楚-你能展示
实体的构造函数来展示连接字符串是如何设置的吗?这段代码是你自己写的还是由VS@Pawel生成的?请参见上面编辑的代码。它是由EDMX设计器生成的。@Pawel I将连接字符串从EDMX复制并粘贴到web应用程序的web.config中,将提供程序字符串中的双引号替换为xml友好的“
 /// <summary>
        /// Initializes a new Entities object using the connection string found in the 'Entities' section of the application configuration file.
        /// </summary>
        public Entities() : base("name=Entities", "Entities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }