問題タブ [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 投票する
4 に答える
8366 参照

c# - Entity Framework Fluent Api を使用して System.Uri をマップする

かなり単純な質問です。タイプであるプロパティを持つモデルがありますSystem.UriUris には、デフォルトのパラメーターなしのコンストラクターがなく、ID フィールドもありません。モデルの生成をオーバーライドして、DB に独自の方法で (たとえば としてstring) 格納する方法はありますか? NHibernate では、以前に を実装してこれを行っIUserTypeたことがありますが、CodeFirst ではまだ同様のメカニズムを見つけることができませんでした。

明らかにUri、ボンネットの下を使用し、通常のマップ可能なプロパティとコンストラクターを公開するカスタム型を作成できます。このようなラッパーを作成する必要がないように、このシステム型をマップする方法があるかどうかに興味があります。

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

.net - データベースを生成せず、既存のテーブルにマップします

最初にモデルを使用してアプリケーションのクリーンな EF モデルを生成したいのですが、モデルで新しい db スキーマを生成する代わりに、エンティティ内で既存のデータベース テーブルまたは複数のテーブルにテーブル マッピングを手動で実行したいと考えています。これにはメカニズムがありますか?

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

entity-framework - Entity Framework Code First - 単一クラスによる多対多

MenuItem オブジェクトを使用して EF Code First (EF4、CPT5) に移行しようとしているナビゲーション メニュー プロバイダーがあります。これは、何よりも EF Code First とのさまざまな関係を構築することに慣れるための演習です。

私の MenuItem には、MenuItems のコレクションである SubMenuItems というフィールドがあります。クラスを変更せずに EF Code First を使用すると、MenuItems 用に作成されたテーブルに親メニュー項目の列が追加されます。メニューは正しく表示されますが、これにより、メニュー項目を複数のサブメニューに表示する機能が削除されます。各 MenuItem をスタンドアロン項目にして、メニュー項目の SubMenuItems を他の MenuItems にリンクする別のテーブルを作成することを EF Code First に伝える適切な方法は何ですか?

私は OnModelCreating をオーバーライドしようとしましたが、それぞれの試行は、壊れているか、OnModelCreating に触れずに行うのとまったく同じことを行うことで終わりました。ただ「やり方が悪い」だけだと思います。

ありがとう!

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

entity-framework - EF コードの最初の無効な列名「CategoryCategoryID」

Web フォーム アプリケーションを含む Northwind という名前の既存のデータベースがあります。アプリケーションを実行すると、「無効な列名 CategoryCategoryID」というエラーが発生します。誰でも私を助けて?. 前もって感謝します!!

カテゴリ.cs:

Product.cs:

Northwind.cs

製品.aspx

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

.net - Entity Framework CTP5コードファースト:クラスを別のクラスの複数のコレクションにマッピングする

EF CTP5コードを使用-最初に、あるクラスに複数のコレクションを含み、別のクラスを指すクラスモデルをマッピングしようとしています。これが私が意味することの例です:

DbContext次のように、さらにカスタマイズせずにこのモデルからデータベースを作成させると、次のようになります。

...次に、SQL Serverに2つのテーブルがあります。1つの列Companiesのみの単純なテーブルと次の列のテーブルです(「FKRN」は、SQL ServerのEFによって作成された「外部キー関係名」を意味します)。CompanyIdPeople

CompanyId最後の3つの列には、テーブルの主キーとのすべての外部キー関係がありCompaniesます。

今、私はいくつかの質問があります:

  • 1)テーブルに3つの外部キー列があるのはなぜですか?People私は実際に2つを期待していました。3番目の列public Company Company { get; set; }からプロパティを削除すると消えますが、クラスの参照プロパティも失われます。PersonCompanyCompanyId2

  • Company2)プロパティをテーブルから削除したとしPersonます(モデルでは実際には必要ありません)。CompanyCompanyId残りの2つの外部キー列に自動作成およびとは別の名前を付ける方法はありCompanyCompanyId1ますか?(たとえば、FCompanyIdおよびコレクションとMCompanyIdの関係を示すために。)FemaleEmployeesMaleEmployees

  • CompanyId3)テーブルに1つの外部キーのみを使用してこのモデルを定義する方法はありPeopleますか?確かに、Personクラス内に差別化する追加の列が必要になります(のようにbool IsFemale)。PersonはFemaleEmployeesまたはMaleEmployeesコレクションのいずれかであり、両方に含まれることはありません(この例では当然)。したがって、SQLを使用すると、のようなものでこれらのコレクションをフェッチできますWHERE IsFemale = true/false AND CompanyId = 1。この方法で2つのコレクションをロードするためのヒントをEntityFrameworkに与えることができるかどうか疑問に思っています。(ここでは、両方が派生するaFemalePersonとclassによってモデルを拡張することは避けたいと思います。MalePersonPersonこれらの派生クラスは空で人工的であり、SQL Serverへのマッピングを有効にする以外の目的はなかったため、基本クラスとして使用し、たとえばTable-Per-Hierarchyマッピングを使用します。)外部キーCompanyIdが1つしかない場合は、それを作成できnon-nullableます。 2つの外部キーでは不可能です(同じ行で両方がnull以外になることはありません)。

事前にフィードバックや提案をありがとうございます!

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

wpf - Entity Framework CTP5コードファースト、WPF-MVVMモデリング

モデルをすべてWPFアプリケーション用にセットアップし、最初にエンティティフレームワークのctp5コードを操作します。次に、サンプルモデルクラスを示します。

ビューモデルを構築するための推奨される方法は何ですか?私のビューモデルはINotifyPropertyChangedを実装しますが、モデルクラスにUI固有のコードを持たせたくないので、他のアプリで簡単に再利用できます。すべてのモデルプロパティを仮想にしてから、ビューモデルでそれらをオーバーライドする必要がありますか?(多くの不要なコーディングのようです...)EFコードは、最初にこのタイプのフォーマットでうまく機能しますか?

編集 これはやや似た質問ですMVVMでは、ViewModelまたはModelはINotifyPropertyChangedを実装する必要がありますか? ただし、唯一の解決策は、UIロジックであると私が考えるものをモデルに追加することであるように見えます。おそらく、ある種のデリゲートをモデルに追加し、ビューモデルからそれにフックすることができます。これにより、INotifyPropertyChangedが使用されます...このようなものですか?

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

ef-code-first - コード ファースト CTP5 エラー メッセージ

コード ファースト CTP5 を使用して設定した新しいプロジェクトで、次のエラー メッセージが表示されます。それについてウェブ上で何も見つけることができません。このエラー メッセージに遭遇した人はいますか?

モデルの作成中はコンテキストを使用できません。

これは、データベース コンテキストが初めて呼び出されたときに発生します (以下のコード)。

この時点では、データベースは作成されていません。DropCreateDatabaseIfModelChangesapp_start で設定したデータベース初期化子があります。

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

entity-framework - 多対多の関係にあるオブジェクトを削除することはできません

これらは私の単純化されたエンティティです:

問題は、結合テーブルがユーザーテーブルを参照し、efがユーザーを削除する前に結合テーブルからレコードを削除しないことです。

テストケースを書いてみたところ、次のことに気づきました。

同じコンテキストを使用してロールを持つユーザーを追加し、変更を保存し、変更を削除して再度保存すると、機能します

しかし、挿入用と削除用の2つの異なるコンテキストを使用すると、このエラーが発生します

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

entity-framework - Entity Framework CTP5 (Code First) モデリング - ルックアップ テーブル

次のテーブル構造を想定します。

テーブル:

割り当てテーブルは、割り当てられたリソースとタスクを関連付けます。Assignment poco クラスを作成する必要がないように、この構造をモデルビルダーでマッピングすることは可能ですか?

いいえ:

モデル ビルダーを使用して、割り当て poco クラスを作成せずにタスクをリソースにマップするにはどうすればよいですか?

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

entity-framework - エンティティ データ モデルを使用した EF POCO コードのみ VS EF POCO

ドメイン オブジェクトをあらゆる種類の永続化コードから完全に分離できるため、システムの拡張性と保守性が大幅に向上します。ビジネス ロジックをストレージ コードとは別にテストできると、テストがはるかに簡単になります。Entity Framework (EF) での POCO の使用は、間違いなく正しい方向への一歩です:)

EF での poco の使用には、2 つのタイプがあります。 1.エンティティ デザイナーを使用する 2.コードのみを使用する

エンティティ データ モデル デザイナーを使用した EF poco コードまたは EF Poco のどちらが最善のアプローチですか?

ありがとう