OleDB接続のあるEntity Framework - 私は単なるナッツですか

c# entity-framework ms-access

質問

Entity Frameworkを試していて、Access 2007データベースに接続したいです。

次のコードは、 http://msdn.microsoft.com/en-us/library/system.data.entityclient.entityconnection.connectionstring.aspxからヒントを得ています

スティックの端が間違っているのではないかと思います。

OleDbConnectionStringBuilder oledbConn = new OleDbConnectionStringBuilder();

oledbConn.DataSource = @"..\..\..\..\Pruebas.accdb"; //yep Access 2007!

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder ();
entityBuilder.Provider = "Microsoft.ACE.OLEDB.12.0";
entityBuilder.ConnectionString = oledbConn.ToString();
EntityConnection ec = new EntityConnection(entityBuilder.ToString());
ec.Open();
ec.Close();

EntityConnectionStringBuilderは、DataSourceプロパティをサポートしていないことを教えてくれます。 ADO.netとうまく接続できるので、パスとプロバイダが正しいことがわかります。

これは完全に間違ったアプローチですか?

受け入れられた回答

EF接続文字列を構築するために使用している方法は正しいです。

しかし...

Entity Frameworkは、プロバイダーサービスと呼ばれるものをサポートするプロバイダー(つまりSqlClient)でのみ機能します。

OleDBプロバイダは 'Provider Services'をサポートしていないため、OleFbとEFを併用することはできません(EFをサポートするサードパーティ製OleDbプロバイダが見つからない場合を除く)。

お役に立てれば

アレックス

(マイクロソフト、Entity Frameworkチーム)


人気のある回答

接続文字列を構築するには、デスクトップにa.udlというファイルを作成します。

それをダブルクリックすると、UIが開きます。ウィザードに従って接続をテストします。

それからUIを閉じて、メモ帳でファイルを開くと、接続文字列がわかります。

編集それはあなたが参照を逃しているのであなたがこのエラーを受けているということかもしれません。 Entity Frameworkは拡張メソッドを使用します。したがって、コンパイルはできますが、まだ機能しない可能性があります。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ