問題タブ [ef-code-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 投票する
3 に答える
27452 参照

entity-framework - EFコードファーストでテーブルを特異化するにはどうすればよいですか?

データベーステーブルに名前を付けるときは、単数名詞を使用することを好みます。ただし、最初のEFコードでは、生成されるテーブルは常に複数形です。私のDbSetは複数形であり、EFが名前を生成していると思いますが、コード内で複数形にする方が現実的であると考えているため、これらの名前を単数形にしたくありません。また、設定を上書きしようとしましたが、役に立ちませんでした。

何か案は?これが私のコードと感謝です。

MyObjectContext.cs

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

asp.net-mvc - MVC3/CTP5/ViewModel/マスター詳細

私はコードファーストのアプローチで論争しようとしていますが、ここで理解にギャップがあります。投稿とファイルのコレクションがあります。

そして、私はViewModelを次のようにダウンさせていると思います

List と Display ではすべて正常に動作しますが、新しい投稿とファイルを作成しようとすると、すべてがうまくいきません。ViewModel を使用してみましたが、ビュー モデルのリストに項目を追加する方法がわかりません。

「投稿」に基づいてビューを作成し、ファイルをアップロードしてそれらのリストを隠しフィールドに保持する部分ビューを作成しました。すべてを機能させることができますが、それがエレガントなソリューションであるかどうかはわかりません。

誰かが私がベースから外れているかどうかを教えてもらえますか...会話を開始して、うまくいけば他の初心者に役立ついくつかの応答を収集したいと考えています。

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

c# - Entity Framework CTP5 Code First: 非プリミティブ型をキーとして使用

かなりの数のデータ構造を持つプロジェクトがあり、それにデータベースを導入したいと考えています。Entity Framework CTP5 のコード ファースト機能について調べています。

現在、タイプごとに個別の Identifier タイプを使用しています (例: TypeAIdentifier、TypeBIdentifier など)。これらの識別子を操作するときにタイプ セーフが可能になるため、これは素晴らしいことです。問題は、EF に非プリミティブ型を識別子として使用させることができないように見えることです。http://blogs.msdn.com/b/efdesign/archive/2010/03/30/data-annotations-in-the-entity-framework-and-code-first.aspxにヒントがあります。

実際、次のプログラムは例外をスローします。

奇妙なことに、このプログラムは MissingMethodException (「このオブジェクトにはパラメーターなしのコンストラクターが定義されていません」) をスローしますが、次のいずれかによってプログラムが実行されるため、これは KeyAttribute に関連していると確信しています。

  1. [キー] を削除します。また
  2. [Key] を IntValue に移動します。

EF で識別子クラスを PK としてマップするにはどうすればよいですか? 頭に浮かぶ2つのオプション:

  1. EF で非プリミティブ型を PK として使用する方法を見つけます。
  2. 「int」を PK として配置し、EF にこの「int」を MyIdentifier に変換させます (これには、「int」以外のものを使用することにした場合、MyIdentifier とマッピングの両方を更新する必要があるという欠点があります。ただし、少なくとも識別子の型の安全性を維持できます)。Function Imports でこれができると思ったのですが、ストアド プロシージャの上に構築されているようです。

これを達成する方法はありますか?

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

c# - EF コードの最初の自動外部キー関連付けの問題

このチュートリアルを介して、最初にEFコードの最新バージョンの基本的なグリップを取得しました- http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part4-csしかし、少し混乱していますある側面について、誰かがそれに光を当てることができるかどうか疑問に思っていますか? 説明するために-「Site」というクラスがあり、「HomePageId」というフィールドが必要であり、そのIDで「SitePage」オブジェクトにマップする必要があります。シンプルに見えますか?しかし、EF が Db と関係を作成するとき、これを理解していないようです。私はそれが間違っていると確信しています-ここにコードがあります:

ご想像のとおり、「SitePage」クラスは「Site」への関係を生成します。しかし、両方のテーブルの列に関して私が得たものは、意味をなさないだけでなく、コード側からの関係が期待どおりに機能しません。(たとえば、「サイト」に「HomePageId」を指定すると、サイトの「HomePage」は null になります。

明らかに、これはまだ開発中であるため、ドキュメントに関してはほとんど公開されていませんが、何かアイデアがあるかどうか疑問に思っていますか? プロパティを属性で装飾する必要がありますか? それとも、決して理解できない何かを理解するように求めていますか?!

事前にすべてに感謝します。とにかく辛抱して、明らかに見つけたものは何でも投稿します。ロブ

0 投票する
4 に答える
43477 参照

entity-framework - EF Code First で外部キーを自己参照するための構文は何ですか?

Contact テーブルの SpouseId から Id への外部キーを参照しようとしています。これを行うための構文は何ですか? 例が見つからないようです。ありがとう。

私はこのようなクラスを持っています:

EDIT1 Joel Cunningham が提供 するリンクと Morteza からの回答に従って、追加のコードを追加しました。

ContactMap.cs

MyObjectContext.cs

注: Contact クラスの Spouse プロパティに "[ForeignKey("SpouseId")]" 属性も追加しました。残念ながら、「シーケンスには複数の一致する要素が含まれています」というメッセージが表示され続けます。

EDIT2: 以下の Morteza の回答は正しいです。要約すると、外部キーを自己参照する場合は、プロパティを "[ForeginKey("SpouseId")] としてマークするか、以下の流暢な API の例を使用できます。コメントの一部で報告したエラーは、単体テストが原因でした。EF Craig Stuntzが、自動インクリメント キーと自己参照外部キーが「依存操作の有効な順序を決定できません」というエラーを引き起こす理由を概説している良いリンクを見つけました。これが私の問題だと思います。これが誰かに役立つことを願っています。

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

entity-framework - コードファーストEFCTP5を使用してマネータイプフィールドを生成する

このブログ投稿:EF4コードファーストコントロールUnicodeとDecimal Precision、属性付きスケールDane Morgridgeは、属性を使用してデータベースでのさまざまなタイプの作成を制御しました。

...そして私はこのかなりユニークなところで見つけました!!!

規則または属性を使用してモデルから実行できる場合、EF CTP5のコードファーストAPIを使用して、結果のデータベースにマネータイプフィールドを生成するにはどうすればよいですか?

申し訳ありませんが、私の英語は私の主な言語ではありません。

前もって感謝します。

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

entity-framework - Entity Frameworkのコードファーストマッピングは、ドメイン駆動設計をどのように反映していますか?

新しいプロジェクトでは、最初にEntityFrameworkCodeを使用したいと思います。そこで、調査を行い、デモを作成して、その動作を確認することにしました。全体を通して、私は大きな問題を抱えているか、おそらくエンティティフレームワークのコードファーストがエンティティにマップする方法とドメイン駆動設計に関係する、私には明らかではない何かを抱えています。

アプリケーションを構築するときに、ドメインエンティティを定義します。(私たちは集合体のルートを定義し、iveが聞いたことからビジネスの状況に応じてそれらのリポジトリを作成します)

それは大丈夫ですが、Entity Framework Code-Firstマッピングは、エンティティ間のリレーショナルな方法のように機能するようです。では、どうすれば両方が共存できるのでしょうか。

例として(ドメイン駆動設計側で考える):

Journal には JournalEnty が含まれ、 タスク問題メモが含まれます

イタリック体はエンティティです。分析後のある意味で、これは直接的な構成であるため、ジャーナルは集約ジャーナルとjournalentryの集約ルートであると言えます。各タスクには、タスクを完了するのにかかった時間を知るための時間値が含まれているため、合計時間とこれからの給与を計算する方法がたくさんあります。ジャーナルには時間レートプロパティがあります。

他のエンティティはそれぞれ集約ルートであり、journalentryへの参照がある可能性があるため、タスク、メモ、および問題がどこに属するかがわかります。

しかし、問題はここにあります.. Entity Framework Code-Firstマッピングがこれをどのように反映できるか?直感的な観点から、ジャーナルにはジャーナルエントリが含まれ、ジャーナルエントリにはメモ、問題、およびタスクが含まれていると言えます。しかし、DDDの観点からは、おそらくそうではありません。私が間違っているが、コードファーストはリレーショナルデータベースのように機能する場合は、私を訂正してください。

では、上記の例をコードファーストでどのようにマッピングするのでしょうか?

どうもありがとうございます。

0 投票する
4 に答える
14239 参照

.net - EFコードからSQLCEデータベースを生成-最初のDbContextクラス

Entity Framework Code-First規則のスタイルでクラスのセットを定義し、System.ComponentModel.DataAnnotations属性でクラスプロパティに注釈を付けました。

次に、このコードからSQL Server Compact Edition(SCSE)(4.0)データベースを生成します。

これを行うにはどのコードが必要で、どのアセンブリをインポートする必要がありますか?

これまでに、C:\ Program Files(x86)\ Microsoft SQL Server Compact Edition \ v4.0 \ Desktop {System.Data.SqlServerCe.dll、System.Data.SqlServerCe.Entity\System.Data.SqlServerCeをインポートしました。 Entity.dll}dllファイル。

どんなポインタでもありがたいです。記事など。

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

c# - レガシー独自の Web アプリケーションを MVC3/Entity-Code-First に書き換える

レガシー Web アプリケーションを (ゼロから) 書き直す目的で、ASP.NET アプリケーションと Database-Abstraction-Layers の構造について、数か月にわたっていくつかの質問を投稿しました。私は最近、MVC3/Entity-Code-First に出くわし、しばらく使ってみたところ、その仕組み、物事がどのように抽象化されているかに惚れ込み、それを使用する言い訳を探しています!

従来のアプリケーションは、独自の HTML を生成する C++/CLI Windows サービスであり (CSS は色とテーブルが豊富に使用されているだけの非常に古い学校の HTML)、ビジネス ロジックに非常に緊密に結合されたインターフェイスを備えています。基本的に何でも改善されます。

しかし、おそらくこれは、私がまだ MVC に十分な時間を費やしていないためかもしれません。

  • レガシ アプリは、カスタム コントロール (独自のフォーム) を使用してコンボ ボックスをデータにバインドし、別の選択に基づいて依存するコンボ ボックスを動的に再設定します。ASP.NET では、この質問は簡単に答えられます。asp:DataListコントロールをページに配置し、それをデータ ソースにバインドすると出来上がりです。少し単純なコードを使用すると、選択した値で他のコンボ ボックスをフィルター処理できます。また、ASP.NET では、従属データをこの方法で自動化する別のデータ リストを実装することも簡単です (これにより、従来のアプリの動作が非常にうまく模倣されます)。MVC でカスタム コントロールの概念を見つけることができないようですが、この種のものはデータを取得してコンボ ボックスに投入するための jQuery 呼び出しによって処理されると思います。しかし、これはコンボボックスがあるすべてのページのすべてのコンボボックスに対して行われますか? これは、適切なパラメーターが渡された部分ビューの場合ですか、それとも単にばかげていますか?

  • これは MVC よりも Entity Framework に関連していると思いますが、Web やチュートリアルで見つけたほとんどの例では、LINQ クエリを実行して、表示するオブジェクトのコレクションを返します。たとえば、MvcMovie の例から:

    次に、を使用してレンダリングされます@foreachビューでループします。これはすべて素晴らしいです。レガシ アプリケーションには、システムの他のすべての領域 (50 以上あります) で使用される単一の参照ページがあります。これは、ログオンしたユーザーに対して定義された列の順序を検査し、外部キーを平坦化することによってこれを行います (ユーザーフレンドリーでない主キー値とは対照的に、外部テーブルのフィールドが表示されるように)。カスタムフィルターを任意の列に。これは、10 万行以上のテーブルに対しても行われます。Entity-framework とビューを使用して同様のものを作成するにはどうすればよいでしょうか? ASP.NET では、ある種のグリッド ビューを動的に生成し、列を自動生成してフィルターを適用することで、おそらくこれを解決します。これは、MVCでより多くの作業を行う可能性があるようです。何か不足していますか?

  • レガシ アプリケーションには、大量のデータ セットを処理する操作がいくつかあります。これはサービスであるため、シャットダウンされることを心配することなくこれらのスレッドを起動できました。SO に関する私の質問の 1 つは、静的マネージャーの存在と AppPool リサイクルの導入についてでしたが、補助サービスを使用することは良い選択肢であると判断しました。つまり、レガシ アプリは、更新ステートメントを単一の行ではなく、レコードの大規模なグループに適用します。これは、通常のモデルをバイパスするデータベースに対してカスタム SQL を記述せずに Entity-Framework で可能ですか? このようなことをする必要がないことを願っています(そうする必要はありません。これは単なる例です)

    これにはかなりの時間がかかる可能性があると思いますが、従来のアプリでは次のようにするだけです。

    したがって、この方法でモデルをどのように使用するかは、私には完全には明らかではありません.

  • レガシ アプリケーションのレイアウトには、どのページでも使用できるいくつかのデータ パネルがあります。ここ Stackoverflow を見ると、この質問が見つかりました。これは、すべてのビューがこの情報をレイアウトに渡す必要があることを意味しますか? そうですか、それとももっと良い方法はありますか?理想的には、レイアウトで特定のモデル/リポジトリにアクセスし、サイド パネルにデータを表示できるようにしたいと考えています。すべてのビュー ページへの追加は非常に反復的であり、エラーが発生しやすい可能性があります。何かを変更する必要がある場合にかかる時間は言うまでもありません。ここでは部分ビューで十分ですが、レイアウト ページでモデルを渡す方法がわかりません。

  • 最後に、Ef-Code-First をインストールした後、本当に素晴らしい属性SourceNameがまだ入っていないことを知り、がっかりしました。これは、従来のテーブル/列に対するマッピングに非常に適していますが、なぜこの時点で除外されたのか完全にはわかりません (少なくとも、私のインテリセンスはそれが存在しないと言っています!) しばらくはなくても大丈夫でしたが、最終的には非常に便利です。

長い質問で申し訳ありません。ASP.NET と MVC3 で何年にもわたる調査作業を行った後、私は本当に MVC3 を使いたいと思っています。

0 投票する
3 に答える
5632 参照

c# - Entity Framework 4: Code First - 別のスキーマでデータベースを作成しますか? MapSingleType?

データベースがあり、2 つの異なるスキーマを使用しています。スキーマは名前空間のようなものです (間違っていたら訂正してください)。このようにして、1 つのデータベースと現在 2 つのスキーマがあるため、1 つのスキーマのテーブルは別のスキーマにあるため、他のスキーマのテーブルと同じ名前を付けることができます。

既定のスキーマではなく、別のスキーマと通信するように最初に EF Code を取得するにはどうすればよいですか?

それは MapSingleType とメソッドのオーバーライドと関係がありますか、それとも何か他のことをすることができますか?