1. ホーム
  2. asp.net

[解決済み] EF 4.1 例外 "プロバイダが ProviderManifestToken 文字列を返さなかった".

2023-05-07 23:59:07

質問

私は、MSDNで見つかった例を再現しようとしています。私はASP.NETとEF 4.1 (CTP?)を使用しています。私はEntityFrameworkパッケージをインストールするためにNuGetを使用しました。

私はこのエラーを受け取っています。 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"/>

以下は私のコードです。

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

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

int recordAffected = db.SaveChanges();

以下は私のコンテキストです。

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" });
    }
}

これは、完全にパッチされた SQL 2008 システムで、VS 2010 SP1 です。

どのように解決するのですか?

私はこのエラーが発生し、以前の提案のいくつかを試しました。それから Inner Exception をチェックして、ユーザーの単純な SQL ログイン失敗が発生していることに気づきました。確認すべき他の何かです。