問題タブ [ef-fluent-api]
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 CodeFirstの多対多の戻りオブジェクトnull
流暢な API とエンティティ フレームワーク (多対多の関係) に問題があります。データベースからデータを取得しようとすると、オブジェクトCompany
とpkdClassification
. 値CompanyId
とPkdClassyficationId
適切に返します。
環境
pkd分類
companyPkd分類
そして最後の一社
entity-framework - 規則なしで流暢な API のみを使用して 1 対 1 の関係を構成する方法
コンベンションの要件を満たさないデータベースで流暢な API を使用して 1 対 1 の関係を構成することは可能ですか? 以下に、データベースと生成されたモデルのサンプルを示します。テーブルは、主キー以外の制約とインデックスを定義しないことに注意してください。
テーブル:
db から生成された最初のモデルをコード化します。
Address から Person に移動できるようにするために、ナビゲーション プロパティが Address クラスに追加されました。
プログラムがこのクエリを実行しようとすると:
ランタイムで例外が発生します:「列名 'Person_PersonKey' が無効です」。コンテキストはカスタム マッピングを構成しないため、規則に従って外部キーを見つけようとしますが、Owner プロパティは規則の要件を満たしていないため、例外になります。したがって、マッピングを追加する必要があります。Person と Address の関係が 1 対多になる場合は、次のような構成を追加できます。
上記で定義されたクエリは正しく実行されます。しかし、Person クラスに Address へのナビゲーション プロパティがあり、双方向の 1 対 1 の関係があるとしたらどうでしょう。
したがって、上記の構成は機能しません。私の質問は、データベース名とプロパティ名を変更せずに構成することは可能ですか?そうであれば、流暢な API のみを使用してどの構成を適用する必要がありますか?
c# - Entity Framework で流暢な API を使用して、1 対 0..1 の関係の外部キー プロパティを指定する方法
テーブルUser
と別のテーブルがありますCompany
。AUser
はゼロまたは 1 つの会社を登録できます。
私のユーザークラス:
私の会社のクラスは次のとおりです。
会社に使用される流れるような API は次のようなものです。
実行後、テーブル内の外部キーとして使用されるAdd-Migration
と予想されますが、エンティティ フレームワークの移行によって生成されるのは次のとおりです。UserId
User
Company
Company.User.Id
質問は、Entity Framework が指定したプロパティを関係の外部キーとして使用するように強制する方法です。その理由は、会社の userId 値がコードで頻繁に必要であり、それを取得するために式を使用したくないためです。 .
注: Entity Framework 6.1.2 と asp.net mvc 5 を使用しています
c# - 主キー Entity Framework Code First の違反
私は C# から始めて、独自の DB を作成したいと考えていました。
私は2つのモデルを持っています
BModel を DB に保存しようとすると、次のエラーが発生します。
PRIMARY KEY 制約 'PK_dbo.AModels' に違反しています。オブジェクト 'dbo.AModels' に重複するキーを挿入できません。重複するキーの値は (48ee1711-8da4-46c1-a714-19e985211fed) です。\r\nステートメントは終了しました。
これで解決かと思った
しかし、私は完全に迷っているようです。この簡単な例で誰か助けてくれませんか?
entity-framework - Entity Framework Fluent API 構成
これが私を悩ませていることです.私は2つのエンティティを持っています---「マスター」と「スレーブ」、最初にそれらをリストさせてください:
基本的、
- マスターにはスレーブのリストがあります。
- スレーブはマスター (親) に属している必要があります。
- スレーブには別のマスター (子) があり、スレーブのリストを持つことができます。
ここに、対応するデータ マッピング クラスが来ます。
これら 2 つのエンティティは問題なく EF モデルの検証に合格でき、次のコードを実行した後、エンド ツー エンドのテスト中にテーブルを正常に作成できます。
topMaster とそのスレーブはすべてテーブルに挿入され、childmaster も挿入されましたが、topMaster のスレーブに関連付けられていません。これは、'ChildMaster' が null で、'ChildMasterId' が空の GUID であることを意味します。
この問題を引き起こすデータ マッピング クラスの何が問題なのかわかりません。
entity-framework - Fluent API を使用して ASC/DESC ソートで複数の列にインデックスを追加する方法は?
Entity Framework 6 - Code First アプローチを使用する MVC ASP.NET アプリケーションがあります。
Fluent API を使用して、列ごとに異なる ASC/DESC ソートで複数の列にインデックスを追加するにはどうすればよいですか?
複数の列を使用する多くの例を見てきましたが、インデックス内の列の並べ替え順序を設定する方法はありません。
次の列にインデックスが必要です: Type(ASC)、DateFor(Desc)、DateCreated(Desc)。
c# - 最初にエンティティ コードを使用して複数のカスケード パスを解決する方法
ATemplate
は、ゼロまたは多数Document
およびゼロまたは多数を持つことができますMetaIndex
。ADocument
は 0 個以上を持つことができIndex
、 aMetaIndex
も 0 個以上を持つことができますIndex
:
これは潜在的なカスケードの問題を表していTemplate
ますDocument
。aDocument
を削除すると、そのも削除されますがIndex
、これも問題ありません。しかし、 を削除Template
しようとするとMetaIndex
( も削除されIndex
ます )、問題が発生します (サイクル)。
私は問題を理解しています。それを解決する方法は、テンプレートを削除するとドキュメントとそのドキュメントのインデックス、およびテンプレートに関連付けられたメタインデックスが削除されることを指定することだと思います。しかし、メタディクスが関連するインデックスをカスケード削除しないため、サイクルは表示されません。
ここで潜在的な解決策を探して、私はこれを試しました:
しかし、それは機能していません:
テーブルに FOREIGN KEY 制約を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更します。制約を作成できませんでした。以前のエラーを参照してください。