实体框架 - “错误的连接字符串”错误

时间:2013-05-08 08:59:54

标签: asp.net-mvc-4 database-connection

我创建了一个新模型:

 public class AuthorDatacontext : DbContext
    {
        public DbSet<Author> Authors { get; set; }

        static AuthorDatacontext()
        {
            Database.SetInitializer(new DropCreateDatabaseIfModelChanges<AuthorDatacontext>());
        }
    }

连接字符串:

  <add name="MyLibrary.Models.AuthorDatacontext" connectionString="Data Source= (LocalDb)\v10.0; Integrated Security=SSPI; AttachDBFilename = |DataDirectory|\MyLibrary.Models.AuthorDatacontext.mdf" providerName = "System.Data.SqlClient"  />

我在我的控制器中使用它:

var db = new AuthorDatacontext();
                db.Authors.Add(author);
                db.SaveChanges();

我以前做过,在另一个项目中它运行良好。 但现在我收到一个错误,试图保存一个新作者:

An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct.

我做错了什么? 如果我删除连接并只保留默认连接,一切正常。

上一个项目具有相同的连接字符串:

<add name="MvcAuction.Models.AuctionsDataContext" connectionString="Data Source= (LocalDb)\v10.0; Integrated Security=SSPI; AttachDBFilename = |DataDirectory|\MvcAuction.Models.AuctionsDataContext.mdf" providerName = "System.Data.SqlClient"  />

1 个答案:

答案 0 :(得分:1)

我认为问题在于EF会尝试从您的项目中再次创建MDF。请先尝试删除它。

\MvcAuction.Models.AuctionsDataContext.mdf EF尝试查看该位置是否存在。如果您使用过SQL服务器,它会将更改从CODE First迁移到数据库。