C#连接字符串问题。首先是EF代码和db上下文

时间:2016-09-02 14:22:03

标签: c# entity-framework connection-string

我的连接字符串配置文件如下所示

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="BlogDB"
    connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\tmks.dldp\documents\visual studio 2013\Projects\CodeFirstTest\CodeFirstTest\DB\Test.mdf;Integrated Security=True"/>
  </connectionStrings>
</configuration>

上面的连接字符串没问题?

以下方式连接字符串已传递给db context。

public class BloggingContext : DbContext
{
    public BloggingContext()
        : base(ConfigurationManager.ConnectionStrings["BlogDB"].ConnectionString)
{
}

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; } 
}

我在运行代码时遇到此错误。错误如下

  

未处理的类型异常   发生'System.Configuration.ConfigurationErrorsException'   System.Configuration.dll

     

其他信息:配置系统无法初始化

告诉我app.config文件中的代码或连接字符串有什么问题?

感谢

2 个答案:

答案 0 :(得分:0)

只需给予基础(&#34; BlogDB&#34;)

 public class BloggingContext : DbContext
 {
public BloggingContext()
    :      base("BlogDB")
  {
  }

public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; } 
 }

答案 1 :(得分:0)

您没有正确输入连接名称。 您可以如下所示更改代码

public class BloggingContext : DbContext
{
    public BloggingContext()
        : base("name=BlogDB")
    {
    }

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

或直接输入连接字符串

public class BloggingContext : DbContext
{
    public BloggingContext()
        : base(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=c:\users\tmks.dldp\documents\visual studio 2013\Projects\CodeFirstTest\CodeFirstTest\DB\Test.mdf;Integrated Security=True")
    {
    }

    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}