2011-12-08 6 views
0

私はLinqpad v4.37.3を使用して、エンティティフレームワーク4.1を使用してビルドに接続しようとしています。私はウィザードを通過して接続を作成することができました。私は接続文字列を使用しています:Linqpad IObjectContextAdapterへのエラーエンティティオブジェクトのキャスト

<?xml version="1.0"?> 

<configuration> 
<connectionStrings> 
    <add name="EFEntities" 
     connectionString="metadata=res://*/Common.Database.DatabaseModel.csdl|res://*/Common.Database.DatabaseModel.ssdl|res://*/Common.Database.DatabaseModel.msl; 
     provider=System.Data.SqlClient;provider connection string='Data Source=ServerAddress; 
     Initial Catalog=database;User ID=username;Password=password; 
     MultipleActiveResultSets=True'" providerName='System.Data.EntityClient' /> 
</connectionStrings> 
</configuration> 

接続をテストすると、sucessfulと表示されます。私は、データベースを展開しようとすると、しかし、私は次のエラーを取得する:

Unable to cast object of type 'EFEntities' to type 'System.Data.Entity.Infrastructure.IObjectcontextAdapter'.

私はこの仕事を得るために、私はこの問題で誰を見つけることができないように変更するために必要なものはかなりよく分かりません。

+0

新しいベータ4.37.4がありますか?これで修正されますか?これは古いバージョンで動作しますか? – DaveShaw

答えて

2

これはアセンブリの互換性とEF 4.1対4.2のサポートに関する問題です。Fusionは時には厄介な獣です。最新(4.37.5)のベータ版を試してください。これには、EntityFrameworkへのインターフェイスの書き換えが含まれています。 LINQPadの新しいバージョンは、EntityFramework.dllを静的に参照しません。代わりに、Reflectionを使用してEFメンバーを呼び出し、Reflection.Emitを使用して、参照している実際のEFアセンブリに基づいてインターフェイスを実装します。これはあなたが経験している問題を取り除くはずです。新しいバージョンに不具合がある場合はお知らせください。

0

バージョン4.37.5では、「IObjectcontextAdapter」の問題が解決されました。

私は今、左側のオブジェクトブラウザでエンタイトを見ることができます。

しかし、私が実行しようとしているすべてのクエリ/文はちょうど、次のエラーが発生:

Value cannot be null. 
Parameter name: key 

それも物事のEFの一部を打っています前に起こるようです。

私はC#のプログラムとして、次のことを実行しよう:

void Main() 
{ 
    HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize(); 
} 

か、単に

void Main() 
{ 
    for (int i = 0; i++; i < 100) 
    { 
     // nothing 
    } 
} 
  • 私は同じエラーが出るので、直接EF関連ではないように思われます。しかし、SQLデータベースに直接接続すると、文の実行に問題はありません。

私はEF 4.1を使用しています。

編集:申し訳ありませんが、これはJoe Albahariの回答への返信だったはずです。

+0

%localappdata%\ linqpad \ logs \ log.txtにエラーに関する情報はありますか? –

+0

@JoeAlbahari私はそのファイルやフォルダを持っていません。私が持っているのはAutoCompletionCache40とUserOptions.xmlだけです。このログファイルはどこかにログオンする必要がありますか? –