2012-09-04 10 views
6

EF 5.0コードファーストVS 2012プロジェクトがあり、Entity Frameworkのすべてのメニューコマンド(Entity Data Model DDL SQLのビュー)で「例外がスローされました。呼び出しのターゲット "ポップアップ。私も変わったと思うのは、EFパワーツールのベータ1(またはVS 2010、私はわかりません)がEFパワーツールのメッセージを出力ウィンドウに表示することです。今私が得るのはポップアップです...これはVSかパワーツールに問題がありますか?EF Power Toolsベータ2 - 呼び出しの対象によって例外がスローされました

+1

私は同じ問題を抱えていますが、なぜそれを解決するかを見つけましたか? – Eatdoku

+0

私はこれがEF Power Toolsの問題だと思います。ここでの最大の問題は、VSが何が間違っているのかを把握するのに十分な詳細を与えていないことです。 – Pawel

+0

それはまさに私の指摘です - それを絞り込むのに役立つものは何もありません。それはa)、b)c)..可能なすべての組み合わせを望んでいません。以前のベータ版は少なくとも進行状況とメッセージを表示しましたが、新しいバージョンは表示されません(または、どこを見るか) –

答えて

0

おそらく、Visual Studioでは、Entity Frameworkメニューコマンドを選択したときに、DBContextに使用する接続文字列がわからないことがあります。

私の場合、私は私のdbContextの "デフォルト"接続文字列があることを確認することでこれを解決できました。そのため、DBコンテキストを右クリックしてEntityフレームワークを選択すると、DBへの接続が確立されます。

つまり、DBContextを変更して、コマンドラインパラメータからアプリケーションに接続文字列を選択しました。だから、通常、私のDBのコンテキストは、 "デフォルト"の値を持っていませんでした。

public class MyDbContext : DbContext 
{ 
    public static string ConnectionName; 

    public DnnDbContext() 
     : base("Name=" + ConnectionName) {  
    } 

ご覧のとおり、デフォルトではConnectionStringはありませんでした。

私のように変更:これは周りに私の仕事です

public static string ConnectionName = "DefaultConnNameInAppConfig"; 
4

コメントコンストラクタアウト、であるような静的MyDbContextを残す - >

public class MyDbContext: DbContext 
{ 
    public static string ConnectionName = "Name = SMS_ADvTECHContext"; 
    static MyDbContext() 
    { 
     Database.SetInitializer<SMS_ADvTECHContext>(null); 
    } 

/* public SMS_MyDbContext() 
     : base(ConnectionName) 
    { 
    }*/ 
} 

次に、あなたならばコンテキストクラス→Enityframework→ビューエンティティデータモデル(読み取り専用)を右クリックすると、ビューが生成されます。

0

私のDbContextクラスを含むプロジェクト内のApp.config に正しいデフォルト接続ファクトリが設定されていないと、このエラーが発生しました。正しい工場を使うように更新しましたが、このエラーは消えました。私の場合は、LocalDbConnectionFactoryを使用するように設定します。

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
      <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 
0

では、このエラーに遭遇し、それは私のコンテキストが含まれていたプロジェクトがスタートアッププロジェクトではなかった...でも、単純な問題でした。私がプロジェクトをスタートアッププロジェクトに設定したら、それは働き始めました。

0

私はweb.configで同じ名前で複数の接続文字列が設定されていましたが、これに遭遇しました。

関連する問題