EF 4.1异常"提供程序未返回ProviderManifestToken字符串"

bug*_*ker 88 sql asp.net entity

我试图复制在MSDN上找到的示例.我正在使用ASP.NET和EF 4.1(CTP?).我已经使用NuGet来安装EntityFramework包.

我收到此错误:The provider did not return a ProviderManifestToken string...并且永远不会创建数据库.

这是我的连接字符串:

<add name="HospitalContext"
   connectionString=
   "data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;"
   providerName="System.Data.SqlClient"/>
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

var pat = new Patient { Name = "Shane123132524356436435234" };
db.Patients.Add(pat);

var labResult = new LabResult { Result = "bad", Patient = pat };

int recordAffected = db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

这是我的背景:

public class HospitalContext : DbContext
{
    static HospitalContext()
    {
        Database.SetInitializer(new HostpitalContextInitializer());
    }

    public DbSet<Patient> Patients { get; set; }
    public DbSet<LabResult> LabResults { get; set; }
}

public class HostpitalContextInitializer :
             DropCreateDatabaseIfModelChanges<HospitalContext>
{
    protected override void Seed(HospitalContext context)
    {
        context.Patients.Add(new Patient { Name = "Fred Peters" });
        context.Patients.Add(new Patient { Name = "John Smith" });
        context.Patients.Add(new Patient { Name = "Karen Fredricks" });
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个完全修补的SQL 2008系统,带有VS 2010 SP1.

jun*_*ken 184

我收到了这个错误,并尝试了一些早期的建议.然后我检查了内部异常并注意到我为用户获得了一个简单的SQL登录失败.还有别的东西要检查.

  • 谢谢你指点我正确的方向.我的SQL Express服务没有启动 - 呃! (3认同)

Pre*_*gha 8

当您将连接字符串放在Visual Studio中错误项目的app.config中时,有时会发生这种情况.

例如,我在EF 4.1(已发布版本)项目+ WCF数据服务项目中遇到此问题,我注意到我没有在数据服务项目中指定的连接字符串,它正在使用它.


小智 5

我遇到了同样的问题,我在上下文实例之后添加了以下代码(例如加载)

context.Database.Connection.ConnectionString = @"Data Source=.\SQLExpress;Initial Catalog=Test;Integrated Security=True";
Run Code Online (Sandbox Code Playgroud)


小智 5

我遇到了同样的错误,实际上它是指定服务器的登录失败.我从配置连接字符串中删除了"Integrated Security"属性,但它确实有效.