0

私は ASP.NET が初めてで、チュートリアルに問題があります。

VS2012 Express for Web で新しい MVC4 プロジェクトを作成しました。そして、1 つのテーブル "Persons" を含む SQL データベースを追加し、いくつかのランダムなテストデータを入力しました。

Id        int (primary key, is identity=true)
name      varchar(50)
birthdate date 


adam  01.01.2001
berta 02.02.2002

モデルとして、ADO.NET Entity Data Model を使用し、「PersonsModel.edmx」という名前を付け、Personsdatabase を使用しました。

PersonsModel.Designer.cs ファイルを表示するために、「コード生成ステータス」を「標準」にアクティブ化しました。PersonsModel.Designer.cs ファイルを更新してクリックしました。しかし、このファイルにはエラーがあります...したがって、コントローラーで次のようなものを使用したかったのです。

HomeController.cs:

PersonsEntities1 db = new PersonsEntities();

db.person... 

.Designer.cs ファイルのエラーが原因だと思います (?)。

PersonsModel.Designer.cs: 例:

public PersonsEntities1() : base("name=PersonsEntities1", "PersonsEntities1")
{
        this.ContextOptions.LazyLoadingEnabled = true;
        OnContextCreated();
}

base: ... 行と ContextOptions のエラー。残念ながら、私は英語のVSを持っていませんが、次のようなことを言っています:

オーバーロードされた System.Data.Entity.DbContext(string, System.Data.Entity.Infrastructure.DbCompiledModel)-Method には無効な引数がいくつかあります。

「ContextOptions」の定義が見つかりません。最初の引数として「MvcApplication7.Models.PersonsEntities1」を受け入れるメソッド「ContextOptions」はありません。

説明されているチュートリアルのようにやったので、少し混乱しています。

4

2 に答える 2

1

このコードは間違っていると思います:

base("name=PersonsEntities1", "PersonsEntities1")

2 つの文字列を取るコンストラクタはありません。2 番目の引数は、タイプである必要がありDbCompiledModelます。(こちらをご覧ください。)

デザイナーがコンパイルできないコードを生成する理由がわからないので、間違ったバージョンの Entity Framework がインストールされているのではないかと考えています。

于 2012-11-12T19:51:18.823 に答える
0

どうやら問題はVS2012でした。すべてVS2010で動作します。

asp.net/mvc からインストーラーを再度ダウンロードし、Visual Web Developer 2010 Express を追加しました。VS2010 とすべての依存関係をインストールした後、チュートリアルをもう一度試したところ、すべて正常に動作するようになりました。.Designer.cs ファイルに間違ったコードはありません:)。

Ann L. さん、ご支援いただきありがとうございます。あなたのヒント (間違ったバージョンの Entity Framework がインストールされている) により、別の VS バージョンを試すように促されます。

さらに、VS2012 Ultimate (完全な DVD バージョン) も試しましたが、役に立ちませんでした。

于 2012-11-13T15:00:31.000 に答える