2013-10-26 66 views
6

私はVS 2013とSQL Svr 2012を使用していて、EFを使用してグリッドビューを作成しようとしています。これは非常に単純なテストなので、キーとデータフィールドを持つテーブルが1つしかありません。モデルを作成するプロセスはうまくいくように見えます。デザイナビューでは期待通りにapp_codeでファイルが作成され、binフォルダには2つのdllが作成され、configファイルには接続文字列とその他のエントリが追加されます。Visual Studio 2013およびEntity Framework

「名前付き接続」を選択しようとすると、「指定されたメタデータリソースを読み込めません」というエラーが表示され、アセンブリを取得するためにプロジェクトを再構築する方法について説明します。

私はこのような他の例を読んで時間を費やしてきたと私は理解することはできません:それはVS 2010での問題

  • 私はどのように修正すればよいことはなかったとき

    1. なぜこれが起こっています必要なリソースを指す接続文字列。完全に認定されたアセンブリ名についての技術的アドバイスはすべて失われています。私は何も試みません。

    2. リソースを適切な場所に配置するためのパラメータを設定するにはどうすればよいですか。私が読んだすべてのアドバイスは、私は私がVS 2010を使用しています、私はVS 2013をアンインストールし、VS 2012年現在を使うべきかどうかを判断する必要がVS 2013

    と非常によく関連していないようですASP 4.0と私はASP 4.5に移行したいと思っていて、一般にマイクロソフトの技術に追いついています。しかし、私はバグであるVSリリースに対処するスキルレベルは持っていません。このEFの執行は、コンピュータ上のバグか奇妙な破損のいずれかに起因する可能性があると私は思う - 私はどのような場合であるか把握しようとしている。過去にこれらのツールがなかったクリーンマシンにVS 2013 ExpressとSQL Svr 2012をインストールしました。

    私は本当にそれだけでこれを行うには数分かかりとしてのVisual Studioに精通している誰かが私の問題を再現してみてもらいたい

    :小さなを作成し、

    1. をMS SQL Serverでは、プライマリキーといくつかのデータフィールドがあり、いくつかのテストデータを入力する1つのテーブルを持つDB - TestTable1でTinyDBと呼んでください。

    2. Web用VS 2013 Expressを使用して、VBを使用して「ASP空のWebサイト」のオプションを使用して「新規Webサイト」を作成します。

    3. 「ADO.Netエンティティデータモデル」を含むASP App_Codeフォルダを追加し、その名前を「モデル」とします。

    4. DBからモデルを生成し、 "TinyDB"の "New Connection"を作成し、Entity Framework 6.0を使用して "TestTable1"を選択します。名前空間が "TinyDBModel"であることに注意してください。 「完了」をクリックすると、App_Codeやその他のフォルダにいくつかの項目が生成され、web.configも更新されます。

    5. default.aspxというWebフォームを追加し、gridviewをその上にドラッグします。グリッドビューのデザインモードで、「新しいデータソース」を選択し、次に「エンティティ」オプション(default.aspxに表示されるEntityDataSource1の名前をメモ)を選択します。 「次へ」をクリックし、「名前付き接続」の下で「TinyDBEntities」を選択します。これは、「指定されたメタデータリソースを読み込むことができません」というエラーが表示されます。

    VS 2010のこの正確な練習は完全に機能し、正しいデータが表示されたグリッドが作成されます。

  • 答えて

    8

    残念ながら、EntityDataSourceコントロールは最新バージョンのEntity Framework、EF6では動作しません。うまくいけば、コントロールはVSまたはEFの将来のアップデート版で更新を得るが、今は2つを一緒に使うことはできない。

    いくつかのソリューション/選択肢があります:バックEF 5へ

    1. ドロップからEFアセンブリを削除し、App_Codeフォルダーから.edmxと.ttファイルを削除し、これを行うためにBinフォルダを開き、web.configからEFへの参照を削除します。その後、サイトを再構築し、新しいADO.NETエンティティモデルを追加し、Choose Your Versionダイアログでバージョン5を選択します。その後、App_Codeフォルダから.ttファイルを削除し、EDMXダイアガムを開き、空の場所を右クリックし、プロパティグリッドでコード生成戦略をレガシーObjectContextに設定します。それから、もう一度やり直すとうまくいくはずです。

    2. モデルバインディングを使用します。これは本当に推奨されるソリューションです。 Microsoft/EFチームは、EntityDataSourceコントロールから離れ、Dynamic Data Webサイトに対してのみ使用することをお勧めします。Model Bindingが優先されます。これはきれいで使いやすく、クエリーやオブジェクトの更新をたくさんコントロールできます。モデルバインディングについての詳細情報については、チェックアウト:http://www.asp.net/web-forms/tutorials/data-access/model-binding/retrieving-data

    +1

    こんにちはIMAR、 あなたの最初の提案は完璧に動作し、私は2番目の提案でチュートリアルを結合モデルを追求します - どうもありがとうございました!私はあなたの手順は、指定された正確な順序(EDMXプロパティを変更する前に.ttを削除する)に従う必要があることに注意する必要があります。また、configファイルの自動EFアップデートでは、少なくとも私の小さなテストでは、ConfigSectionsをファイルの先頭に戻すためのカット・ペーストが必要です。 より広範な問題についてのあなたの洞察と一緒に、詳細な解決策が最も高く評価されます! –

    関連する問題