2

データベースモデルからスキャフォールディングを使用してコントローラを構築しています。モデルASP.NET MVC3アプリケーションで最初の足場が機能しない

バックエンドのデータベースはSQL Azureですが、それが重要かどうかはわかりません。

私は接続文字列を入力し、テストし、動作します。新しいADO.Netエンティティデータモデルをモデルに追加し、マッピングを作成しました。作成したモデルを開いたときにテーブル構造とFKを表示でき、正しく表示されました。

新しいモデルが利用できるようにソリューションを構築しました。

私はEntity Frameworkの最新バージョンを持っていることを確認し、NuGetからMvcScaffoldingをダウンロードしました。

私は、エンティティフレームワークを使用して、読み取り/書き込みアクションとビューの新しいコントローラを追加すると、私は次のエラーを取得する:

型「Website.Models.App.Application」がマッピングされていませんでした。 IgnoreメソッドまたはNotMappedAttributeデータアノテーションを使用して、型が明示的に除外されていないことを確認します。 型がクラスとして定義され、プリミティブ、ネストまたは汎用ではなく、EntityObjectから継承しないことを確認します。

MvcScaffolding:Controllerを使用して同じコントローラを追加しようとすると、EFデータアクセスコードを使用して読み取り/書き込みアクションとビューが表示されますが、このステップではエラーは発生しませんが、新しいコントローラ私は同じエラーが発生します。

このエラーの原因は何ですか?私は解決策を探し求めていますが、すべてが空になっています。ありがとうございました。

+0

アップデート:私は、私が想定しEntityObject : 公共部分クラスのクラスタアプリケーション:私はAppModel.Designer.csで、次のコード、EDMXモデルに添付CSファイルを見つけましたそこにあるEntityObjectを単に削除することはできませんct?私のテーブルを表すすべての部分クラスがEntityObjectを継承しているようです。それを引き起こした原因は何ですか?どうすれば修正できますか?問題についての洞察は非常に高く評価されます。ありがとうございました。 – Bassel

+0

このエンティティの名前を変更してapplicationtestとし、コンパイルしてもう一度やり直してください。名前が問題を引き起こしているのだろうかと思う。 –

+0

hmmエンティティの名前を変更したらどういう意味ですか?データベース内のapplicationというテーブルの名前をapplicationtestに変更し、エンティティを再度生成する必要がありますか? – Bassel

答えて

0

エンティティデザイナ(.edmxファイル)で右クリックし、[コード生成アイテムの追加]をクリックし、[ADO.NET DbContext Generator]を選択して名前を付け、[追加]をクリックします。 >>この:-(をしなければならない理由を覚えているが、それは私のために同じ問題を修正しました。あなたはおそらくあなたを入れ子になったあなたのVisual Studioのオンラインテンプレート2010

+0

返事をありがとう。 動作しませんでした。コードカテゴリの下にあるコード生成アイテムの追加(他のカテゴリはすべて空です)をクリックすると、ADO.NET EntityObject GeneratorとADO.NET Self-Tracking Entity Generatorという2つのオプションがありました。私は最初のものを選び、それは.ttファイルを生成しましたが、私は足場にしようとした後も同じ問題があります。私は、ADO.Net DbContextジェネレータオプションになっていたかどうかわかりません?もしそうなら私はそれを見ることができませんでした。 – Bassel

+0

最初にデザイナを開き、右クリック>プロパティを選択し、コード生成戦略を「デフォルト」から「なし」に変更し、コード生成項目を追加します。 – robasta

+0

これは私が試行中のいくつかのことを壊しているようです修正する。コード生成戦略は既に存在しませんでした。私はそれが動作する方法を見るためにデフォルトに変更しました。それはジェネレータ項目について不平を言っていたため構築できませんでした。私はそれを削除し、アプリケーションを再構築しましたが、コントローラを追加しようとしたときにエラーが発生しました: "GetControllerScaffolders"を "1"引数で呼び出す例外: "WriteObjectメソッドとWriteErrorメソッドは、パイプラインが閉じられています。マイクロソフトのサポートサービスにお問い合わせください。今度は再びビルドされません。 – Bassel

1

、ネットDbContextジェネレータをインストールカントメインクラスのあなたのクラス:

static void Class main(string[] args) 
{ 
    public Class YourClass() // This is the wrong location, it's nested in the main class 
    { 
     ... 
    } 
} 

public Class YourClass() // This is the correct location 
{ 
    ... 
} 
0

から利用できない場合

関連する問題