問題タブ [ef-model-first]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
286 参照

visual-studio-2012 - Windows8以外のマシンでのVisualStudio2012およびEF5の開発

EF5モデルファーストプロジェクトを作成しようとしています。

モデルを作成し、[モデルからデータベースを生成]をクリックした後、最初はコードビハインドを作成していませんでした。少し見てみると、コード生成戦略がなしに設定されていることがわかりました。私はそれをデフォルトに設定し(なぜデフォルトではなくデフォルトではないのか疑問に思います)、データベースを再生成しました。

これでコードは作成されましたが、コンパイルされません。エラーは次のようになります-部分宣言は異なる基本クラスを指定してはなりません。このエラーのみが、生成されたコードのコンテナクラスにあります。

また、SQLceファイルにはsintaxの強調表示がなく、右ボタンメニューに[スクリプトの実行]オプションがないことにも気付きました。http://msdn.microsoft.com/en-us/data/jj205424.aspxのビデオによるとWichです。する必要があります。

誰かがこの問題のいずれかを解決する方法を知っていますか?

更新:それで、私はVS2012をWin8マシンにインストールしましたが、これは正しいです-元のマシン(Win7)に戻って、アンインストールして再度インストールしましたが、問題は解決していません。これはある種のWin7の制限だと思います-Win7でのwin8アプリの開発はありません。

しかし、Win8 Appsとは異なり、Win7でDBアプリを開発できない理由はないはずなので、私の質問は次のように言い換える必要があります。VS2012向けの完全な長さのDBツールを使用できるようにインストールできるものはありますか。 Win7?

0 投票する
1 に答える
2956 参照

entity-framework - EntityFrameworkモデル最初に、外部キーからの複合主キー

次の表を含むEntityFramework5ModelFirstプロジェクトがあります。

上記のテーブルと関連付けをUserExtensionMapに設定すると、UserIdとExtensionIdがマップされていないというエラーが表示されます。

そこで、UserExtensionMapテーブルを右クリックして、テーブルマッピングを選択すると、次の画面が表示されます。 マッピング

マップを設定できますが、Extensions.NumberとUser.Usernameをマップするものはありません-混乱していますUsers.Id to UserExtensionUser.IdExtensions.Id to UserExtension.ExtensionId

コンパイルしようとするとエラーが発生します:

Error 3024: Problem in mapping fragments starting at line 119:Must specify mapping for all key properties (UserExtensionMaps.ExtensionId, UserExtensionMaps.UserId) of the EntitySet UserExtensionMaps.

UserExtensionMapの上記のマップを削除すると、次のエラーが発生します。

Error 3027: No mapping specified for the following EntitySet/AssociationSet - UserExtensionMaps.

私のモデルXMLファイルは以下のとおりです。

0 投票する
2 に答える
35106 参照

c# - EntitySetSystem.InvalidOperationException-「エンティティタイプは現在のコンテキストのモデルの一部ではありません」

同様の質問

エンティティタイプ<classname>は現在のコンテキストのモデルの一部ではありません-そして-EF4.1コードファーストエラー-エンティティタイプSomeTypeは現在のコンテキストのモデルの一部ではありません同様の質問ですが、「コードファースト」の観点ですのみ、はるかに単純なデータモデルを使用し、接続文字列とマッピングの問題に対処します。これをよく見てください。

症状

Drinksコレクションを取得すると例外がスローされます。

コード

はい、私は現実の世界では、肉と野菜と食事の関係は多対多である可能性が高いことを知っていますが、ここでそれにこだわる必要はありません。

私の経験は、モデルファーストの方法論を使用したことです。EDMXファイルが作成されてからPOCOが作成されました。

接続文字列には、解析されたEDMXリソースにマップするメタデータセクションがあります(metadata=res://*/Models.MealsModels.csdl|res://*/Models.MealsModels.ssdl|res://*/Models.MealsModels.msl;)。

EDMXファイルの基礎となるXMLを調べたところ、ConceptualモデルとStoreモデルに存在するすべてのエンティティが示され、すべてが完全にマップされています。WTF?

トラブルシューティング

SSDL最初に試みたのは、ストアとマッピングEDMXデータ(およびMSLセクション)を完全に取り除くことでした。発射してください、そして今、2つの例外があります:

  1. Mealsスローを取得してMSL, error 2062 No mapping specified for instance of the EntitySet and AssociationSet in the EntityContainerいます。

  2. 取得Drinksはスローを続けThe entity type Drinkis not part of the model for the current contextます。

によってスローされるエラーMealsが予想されます。マッピングとストアモデルを削除しました。調べてみると、_db- Meals> InternalSet->EntitySetプロパティが正しく、マッピングされていないことがわかります。

によってスローされたエラーDrinksは、私が立ち往生しているところです。よく調べる_dbと、Drinks-> InternalSet->は、エンティティがモデルコンテキストにないことを示す例外をEntitySetスローすることがわかります。SystemInvalidOperation

EDMXのCSDLはXML形式で次のようになります。

質問

DbContextにすべてのプロパティがあり、DbSetCSDLがエンティティタイプを正しく定義しているモデルのメタデータを含む接続文字列を使用している場合、なぜそれがコンテキストの一部ではないのですか?Drink

私が見ることができる唯一の違いDrinkは、それが他のエンティティとは関係がなく、関連付けがないことです...

0 投票する
1 に答える
4234 参照

entity-framework-5 - Code First コード生成でモデルを作成しようとしていますか?

Entity Framework 5 に移行し、最初にモデル化します (データベースが複雑で、個別に維持されているため)。新しい DbContext コード ジェネレーターを使用して、データベースをインポートします。

接続を手動で生成すると、生成およびトリガーされます-これは必要です(接続設定は別の構成ファイルにあります)。

メッセージは次のとおりです。

Database First および Model First 開発用の T4 テンプレートを使用して生成されたコードを Code First モードで使用すると、正しく動作しない場合があります。Database First または Model First を引き続き使用するには、実行中のアプリケーションの構成ファイルで Entity Framework 接続文字列が指定されていることを確認してください。Database First または Model First から生成されたこれらのクラスを Code First で使用するには、属性または DbModelBuilder API を使用して追加の構成を追加してから、この例外をスローするコードを削除します。

何?

どうすればこれを抑えることができますか?エンティティ フレームワークでデータベース スキーマを操作する必要はありませんが、明らかにデータベースを使用できるようにしたいと考えています。

0 投票する
1 に答える
415 参照

entity-framework-5 - EntityFrameworkでリレーションの状態を変更します

私の質問はこれに直接関係しています。

受け入れられた答えは「あなたはまた関係の状態を変えなければならない」と言っています。

モデルファーストアプローチを使用していますが、エンティティに外部キーがありません。ナビゲーションプロパティしかありません。

を介してエンティティの状態を変更することはできますが、リレーション自体DbEntityEntryの状態を変更する方法がわかりません。どうすればアクセスできますか?

私のコードの例:

Adressこのコードはエラーなしで渡されますが、との間の関係Stateは更新されません。建物NameStreetプロパティの。

0 投票する
1 に答える
268 参照

entity-framework - Entity Framework Model-First デザイナーでフィールドをインデックス付きとして設定する方法

これは過去に多く寄せられたもので、EDMX デザイナーでフィールドをインデックス付きとして設定するための直接的なサポートがなかったことは知っていますが、Visual Studio 2012 がリリースされ、Entity Framework 5 がリリースされたため、編集がサポートされるようになった可能性があります。デザイナーのインデックス作成オプション (とにかくサポートしない理由はありません)、フィールドのプロパティを調べたところ、フィールドをエンティティ キーとして設定することしか見つかりませんでしたが、問題は解決しません (私はすでにエンティティ キーを持っている場合、パフォーマンス上の理由から他のフィールドにインデックスを作成したいだけです)。

EDMX デザイナーでフィールドをインデックス付き列として設定するにはどうすればよいですか? (SQLクエリを介して行う方法は知っていますが、データベースを編集して再作成するため、よりモジュール化されたアプローチが必要であり、SQLクエリによって毎回インデックスを追加することを忘れる可能性が高いです).

ありがとう、カン。

0 投票する
1 に答える
8846 参照

entity-framework - エンティティタイプ現在のコンテキストのモデルの一部ではありません

これはモデルの最初のアプローチです。私はすでにこれを徹底的に研究していて、答えを思い付いていません。私は次のリンクですべての提案を試しました:

これは同じ問題のようですが、解決策がありません エンティティタイプ<classname>は、現在のコンテキストのモデルの一部ではありません

これらは私がすでに調査したリンクなので、重複して答えないでください---- EF4.1コードファーストエラー-エンティティタイプSomeTypeは現在のコンテキスト のモデルの一部ではありませんエンティティタイプはモデルの一部ではありません、EF 5

EDMX(簡潔にするために省略)は次のとおりです。

リポジトリコード:

DatabaseContextコード:

そして2つのクラスファイル:

WorkOrderHeader:

CompanyHeader:

ユニットテストコード:

私が問題を解決しようとしたこと:

1)チェックされたデータベース-両方のクエリがデータを正しく返します。select * from vwWorkOrderHeader select * from vwCompanyHeader

2)EDMXからWorkOrderHeaderを削除してから、データベースから再作成しました。

3)DBContextをMOQして、サービスクエリが何かおかしなことをしていないことを確認しました。これはオブジェクトを正しく返すので、コンテキストレベル以下のものであることを意味します。

4)両方のテストをステップスルーして、コンテキストを構築するための同じ方法を使用していることを確認します-あなたはそうします。

4)両方のテストを実行して、リポジトリを構築するのと同じ方法を使用していることを確認します。

5)唯一の違いは、DatabaseContextの次の関数の間です。

WorkOrderHeaderコードには、MyBase.Set(Of T)()のウォッチに次のものがあります。

CompanyHeaderコードには、MyBase.Set(Of T)()のウォッチに次のものがあります。

私はこれについて完全に途方に暮れていて、同じ問題に取り組む3日目に入ります。問題を新たに見たときに、自分が犯したエラーが表示されたり、思いもよらなかった問題をテストする方向に向けられたりすることを期待しています。

アップデート:

サービスコードを削除して、DBContextにあることを確認しました。リポジトリのみが使用され、それらがすべて同じDatabaseContextを使用するように、方程式からサービスを分離しました。したがって、接続文字列に関連するものはありません。モデルブラウザのInsight_Model/EntityContainer:Insight_Entities / Entity Sets / WorkOrderHeadersの下に存在し、Insight_Model / Entity Types/WorkOrderHeaderの下に存在することを確認しました。DatabaseContextは、エンティティセットの概念モデルを照会しようとしていないように見えます。

0 投票する
1 に答える
4592 参照

entity-framework - 最初にエンティティ フレームワーク モデルで生成されたコードにドキュメントを追加します

私は VS 2010 以降、最初に Entity Framework モデルを使用しています。プロジェクトをビルドすると、EF はすべてのエンティティを含む Model.Designer.cs ファイルを生成します。このデザイナー ファイルには、EDMX ファイル内のエンティティに追加されたドキュメントも含まれています。

VS 2012 で新しい EF モデルの最初のプロジェクトを作成すると、Model.tt ファイルが EDMX ファイルに追加されます。この T4 テンプレートは、モデル内のエンティティごとに 1 つのファイルを生成します。残念ながら、EDMX ファイルのドキュメントは、生成されたコードでは使用されません。

モデルを文書化するのが本当に好きなので、使用時に IntelliSense が表示されます。これまでに見つけた唯一の回避策は、Model.tt と生成されたクラス ファイルを削除し、EDMX ファイルのコード生成をオンに戻すことです。これは、VS 2010 から使用されている動作に戻ります。ただし、エンティティごとに個別のファイルを使用することをお勧めします。

生成された単一クラス ファイルに EDMX ファイルのドキュメントを含める方法はありますか (できれば VS ツールを使用し、VS に付属するファイルを変更する必要はありません)。

編集:私の問題をさらに説明するために、ここに簡単な例を示します。

私のモデルが次のようになっているとしましょう:単純なエンティティ フレームワーク モデル

Id プロパティの [プロパティ] ウィンドウで、ドキュメントを入力した部分を強調表示しました。

これは、エンティティが EDMX ファイルでどのように見えるかです。

Model.tt によって生成されたクラス (Entity1.cs) は次のようになります。

しかし、モデルのコード生成を有効にすると、Model.Designer.cs でエンティティが次のように表示されます。

ご覧のとおり、Model.Designer.cs には、カスタム ドキュメント文字列 "This is documentation for the ID property." が含まれています。Entity1.cs はそうではありません。ただし、多数のエンティティがあり、このファイルへのデバッグがやや遅い場合、Model.Designer.cs は非常に大きくなる可能性があります。いくつかの小さなファイル (エンティティごとに 1 つ) を持つことをお勧めしますが、生成されたコードで EDMX ファイルからのドキュメントを保持します。

0 投票する
1 に答える
752 参照

entity-framework-5 - 最初にEntity Framework 5モデルを使用して階層ごとにテーブルを生成する方法

最初にエンティティ フレームワーク 5 モデルで Visual Studio 2012 を使用しています。階層戦略ごとのテーブルを使用してデータベースを生成したいのですが、そのオプションが見つかりません。Visual Studio 2012 では Entity Designer Database Generation Power Pack を使用できないか、見つかりません。

誰でも提案はありますか?

0 投票する
1 に答える
385 参照

c# - EF Model First での 1 対 1 の関係の問題

EF を使用して Model-First としてアプリケーションを開発しようとしています。テーブル分割パターンと 1:1 の関係を実現するためにあらゆることを試みましたが、EF ではうまくいかないようです。

私がModel-Firstを使用していると仮定すると、生成されたファイルとEFをいじらずに1:1の関係を置く方法はありますか?

関係 'Blabalbala' のロール 'Blablalah' では、多重性は無効です。依存ロール プロパティはキー プロパティではないため、依存ロールの多重度の上限は * でなければなりません。

宛先テーブルで FK を主キーとして設定しようとしましたが、まだ役に立ちません。