問題タブ [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.
c# - Entity Framework Fluent Api を使用して System.Uri をマップする
かなり単純な質問です。タイプであるプロパティを持つモデルがありますSystem.Uri
。 Uri
s には、デフォルトのパラメーターなしのコンストラクターがなく、ID フィールドもありません。モデルの生成をオーバーライドして、DB に独自の方法で (たとえば としてstring
) 格納する方法はありますか? NHibernate では、以前に を実装してこれを行っIUserType
たことがありますが、CodeFirst ではまだ同様のメカニズムを見つけることができませんでした。
明らかにUri
、ボンネットの下を使用し、通常のマップ可能なプロパティとコンストラクターを公開するカスタム型を作成できます。このようなラッパーを作成する必要がないように、このシステム型をマップする方法があるかどうかに興味があります。
.net - データベースを生成せず、既存のテーブルにマップします
最初にモデルを使用してアプリケーションのクリーンな EF モデルを生成したいのですが、モデルで新しい db スキーマを生成する代わりに、エンティティ内で既存のデータベース テーブルまたは複数のテーブルにテーブル マッピングを手動で実行したいと考えています。これにはメカニズムがありますか?
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 に触れずに行うのとまったく同じことを行うことで終わりました。ただ「やり方が悪い」だけだと思います。
ありがとう!
entity-framework - EF コードの最初の無効な列名「CategoryCategoryID」
Web フォーム アプリケーションを含む Northwind という名前の既存のデータベースがあります。アプリケーションを実行すると、「無効な列名 CategoryCategoryID」というエラーが発生します。誰でも私を助けて?. 前もって感謝します!!
カテゴリ.cs:
Product.cs:
Northwind.cs
製品.aspx
.net - Entity Framework CTP5コードファースト:クラスを別のクラスの複数のコレクションにマッピングする
EF CTP5コードを使用-最初に、あるクラスに複数のコレクションを含み、別のクラスを指すクラスモデルをマッピングしようとしています。これが私が意味することの例です:
DbContext
次のように、さらにカスタマイズせずにこのモデルからデータベースを作成させると、次のようになります。
...次に、SQL Serverに2つのテーブルがあります。1つの列Companies
のみの単純なテーブルと次の列のテーブルです(「FKRN」は、SQL ServerのEFによって作成された「外部キー関係名」を意味します)。CompanyId
People
CompanyId
最後の3つの列には、テーブルの主キーとのすべての外部キー関係がありCompanies
ます。
今、私はいくつかの質問があります:
1)テーブルに3つの外部キー列があるのはなぜですか?
People
私は実際に2つを期待していました。3番目の列public Company Company { get; set; }
からプロパティを削除すると消えますが、クラスの参照プロパティも失われます。Person
CompanyCompanyId2
Company
2)プロパティをテーブルから削除したとしPerson
ます(モデルでは実際には必要ありません)。CompanyCompanyId
残りの2つの外部キー列に自動作成およびとは別の名前を付ける方法はありCompanyCompanyId1
ますか?(たとえば、FCompanyId
およびコレクションとMCompanyId
の関係を示すために。)FemaleEmployees
MaleEmployees
CompanyId
3)テーブルに1つの外部キーのみを使用してこのモデルを定義する方法はありPeople
ますか?確かに、Person
クラス内に差別化する追加の列が必要になります(のようにbool IsFemale
)。PersonはFemaleEmployees
またはMaleEmployees
コレクションのいずれかであり、両方に含まれることはありません(この例では当然)。したがって、SQLを使用すると、のようなものでこれらのコレクションをフェッチできますWHERE IsFemale = true/false AND CompanyId = 1
。この方法で2つのコレクションをロードするためのヒントをEntityFrameworkに与えることができるかどうか疑問に思っています。(ここでは、両方が派生するaFemalePerson
とclassによってモデルを拡張することは避けたいと思います。MalePerson
Person
これらの派生クラスは空で人工的であり、SQL Serverへのマッピングを有効にする以外の目的はなかったため、基本クラスとして使用し、たとえばTable-Per-Hierarchyマッピングを使用します。)外部キーCompanyId
が1つしかない場合は、それを作成できnon-nullable
ます。 2つの外部キーでは不可能です(同じ行で両方がnull以外になることはありません)。
事前にフィードバックや提案をありがとうございます!
wpf - Entity Framework CTP5コードファースト、WPF-MVVMモデリング
モデルをすべてWPFアプリケーション用にセットアップし、最初にエンティティフレームワークのctp5コードを操作します。次に、サンプルモデルクラスを示します。
ビューモデルを構築するための推奨される方法は何ですか?私のビューモデルはINotifyPropertyChangedを実装しますが、モデルクラスにUI固有のコードを持たせたくないので、他のアプリで簡単に再利用できます。すべてのモデルプロパティを仮想にしてから、ビューモデルでそれらをオーバーライドする必要がありますか?(多くの不要なコーディングのようです...)EFコードは、最初にこのタイプのフォーマットでうまく機能しますか?
編集 これはやや似た質問ですMVVMでは、ViewModelまたはModelはINotifyPropertyChangedを実装する必要がありますか? ただし、唯一の解決策は、UIロジックであると私が考えるものをモデルに追加することであるように見えます。おそらく、ある種のデリゲートをモデルに追加し、ビューモデルからそれにフックすることができます。これにより、INotifyPropertyChangedが使用されます...このようなものですか?
ef-code-first - コード ファースト CTP5 エラー メッセージ
コード ファースト CTP5 を使用して設定した新しいプロジェクトで、次のエラー メッセージが表示されます。それについてウェブ上で何も見つけることができません。このエラー メッセージに遭遇した人はいますか?
モデルの作成中はコンテキストを使用できません。
これは、データベース コンテキストが初めて呼び出されたときに発生します (以下のコード)。
この時点では、データベースは作成されていません。DropCreateDatabaseIfModelChanges
app_start で設定したデータベース初期化子があります。
entity-framework - 多対多の関係にあるオブジェクトを削除することはできません
これらは私の単純化されたエンティティです:
問題は、結合テーブルがユーザーテーブルを参照し、efがユーザーを削除する前に結合テーブルからレコードを削除しないことです。
テストケースを書いてみたところ、次のことに気づきました。
同じコンテキストを使用してロールを持つユーザーを追加し、変更を保存し、変更を削除して再度保存すると、機能します
しかし、挿入用と削除用の2つの異なるコンテキストを使用すると、このエラーが発生します
entity-framework - Entity Framework CTP5 (Code First) モデリング - ルックアップ テーブル
次のテーブル構造を想定します。
テーブル:
割り当てテーブルは、割り当てられたリソースとタスクを関連付けます。Assignment poco クラスを作成する必要がないように、この構造をモデルビルダーでマッピングすることは可能ですか?
いいえ:
モデル ビルダーを使用して、割り当て poco クラスを作成せずにタスクをリソースにマップするにはどうすればよいですか?
entity-framework - エンティティ データ モデルを使用した EF POCO コードのみ VS EF POCO
ドメイン オブジェクトをあらゆる種類の永続化コードから完全に分離できるため、システムの拡張性と保守性が大幅に向上します。ビジネス ロジックをストレージ コードとは別にテストできると、テストがはるかに簡単になります。Entity Framework (EF) での POCO の使用は、間違いなく正しい方向への一歩です:)
EF での poco の使用には、2 つのタイプがあります。 1.エンティティ デザイナーを使用する 2.コードのみを使用する
エンティティ データ モデル デザイナーを使用した EF poco コードまたは EF Poco のどちらが最善のアプローチですか?
ありがとう