2012-04-03 3 views
3

POCOとコンテキストを作成し、NuGet(v4.3.1)からプロジェクトにEFを追加しました。 app.configは、私が慣れ親しんだものと比べて少し新しく見えます。それはそこに、このセクションを持っていますどのようにしてコードを自動的に生成するのですか?

<entityFramework> 
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
    <parameters> 
    <!--<parameter value="Data Source=|DataDirectory|Test.sdf; Integrated Security=True; MultipleActiveResultSets=True" />--> 
    </parameters> 
</defaultConnectionFactory> 

私は「パラメータ」をコメントアウトし、上部のタグの下に代わり、このような接続文字列のスニペットを追加しました:

<connectionStrings> 
    <add name="CodeFirstExampleContext" connectionString="Data Source=|DataDirectory|Test.sdf;Initial Catalog=CodeFirstExample;integrated security=True" providerName="System.Data.SqlServerCe.4.0" /> 
</connectionStrings> 

以前は、SQL CEデータベースが自動生成されるような接続文字列を使用していました。しかし今はやっていません。代わりに、私は次の例外を受け取ります:

"プロバイダ情報をデータベースから取得中にエラーが発生しましたこれは、不正な接続文字列を使用してEntity Frameworkが原因で発生する可能性があります。詳細は内部例外をチェックして、 "

インナー例外は次のとおりです。

「プロバイダはProviderManifestToken文字列を返しませんでした。」ここで

は私のPOCOとコンテキストタイプです:

class Person 
{ 
    [Key] 
    public int Id { get; set; } 
    public string FName { get; set; } 
    public string LName { get; set; } 
    public int Age { get; set; } 
} 


class Context:DbContext 
{ 
    public DbSet<Person> People { get; set; } 
} 

私はここで何かが足りないのですか?

ありがとうございます!

答えて

0

変更への接続文字列:

<connectionStrings> 
    <add name="Context" connectionString="Data Source=|DataDirectory|\Test.sdf" 
    providerName="System.Data.SqlServerCe.4.0" /> 
</connectionStrings> 

、デフォルトの接続ファクトリ変更:どちらか動作しませんでしたという不幸な

<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> 
    <parameters> 
    <parameter value="System.Data.SqlServerCe.4.0" /> 
    </parameters> 
</defaultConnectionFactory> 
+0

を。私は以前にそれを実際に試してみました。私は、プロジェクトに新しい「データベースファイル」を追加し、ソースとしてSQL Server CEを選択しようとすると、それが生成された形式であることに気付きました。 – Cranialsurge

+1

名前はDbContextの完全な名前と一致する必要があります。また、DbContextコンストラクタでname = CodeFirstExampleContextを使用する必要があります。http://petebarber.blogspot.com/2012/04/using-nunit-andentity-framework.htmlを参照してください。 – ErikEJ