手順...MVC3 - エンティティフレームワークと私は通過
DBから生成>新しいADO.NETエンティティデータモデルを追加>のAdventureWorks DBへのセットアップ新しい接続文字列をコントローラを設定するエラー>次へ>テーブル「DatabaseLog」>「完了」を選択します。 DatabaseLogがedmxビューに表示されていることを確認します。
右クリックコントローラは>エンティティ
Modelクラスに
AdventureWorksDWEntitiesコンテキスト
新しいデータコンテキストを使用して、読み取り/書き込みアクションとビューとコントローラテンプレート
コントローラを追加します>デフォルト名を受け入れる表示
剃刀[追加]をクリックします。
プロデュースエラー:。
「 'DatabaseDocumentor.models.AdventureWorksDWEntities' のメタデータを取得できません
System.Data.Edm.EdmEntityeType:EntityType 'AdventureWorksDWEntities' には、キーを持っていません
System.Data.Edm.EdmEntitySet:EntityType:EntitySet 'AdventureWorksDWEntities'は、このエンティティタイプのキーを定義します。キーが定義されていないタイプの 'AdventureWorksDWEntities'です。
Iでは、AdventureWorks(ないAdventureWorksDW)、それが働いていたこの時間を使用して再度試してみました。しかし、私はまだコントローラを生成するときに何を選ぶべきか理解していません。私は3つのオプションを持っています:
テンプレート
ここでは、エンティティを使用して読み書きアクションとビューを持つコントローラを選びました。これは理解するのが簡単です。私はこのオプションを選ぶので私のために私のテーブルを生成したいです。
モデル
これは私がモデルにしたいものです。この場合、 "Department"テーブルをモデル化したいと思います。だから部署を選ぶ。
文脈
これは私にとって本当に曖昧です。 * 名前 *エンティティを選択しました。これはweb.config接続文字列領域の値です。コンテキストとして接続文字列を選択する必要があるのはなぜですか?私はC#で "私のエンティティに到達するために使うオブジェクト"としてのコンテキストしか知りません。それで、ここで私は視覚化するのが難しいです。コンテキストの接続文字列を常に選択する必要がありますか?
重複するhttp://stackoverflow.com/questions/5277788/how-to-fix-system-data-edm-edmentitytype-has-no-key – Eranga
@Eranga - その答え私の問題は修正されず、更新された質問にも対処しません。私はキーがいくつかのORMのテーブルに必要であることを知っています。それは亜音速でも同じです。それは私の質問ではありません。ダブじゃない。 –
PKを指定しましたか? PKを与えないと、EFやnHibernateはどのようにしてエンティティを一意に識別できますか?それはあなたの2番目の質問への答えを与えてくれません。 – Eranga