問題タブ [ef-code-first-mapping]

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 投票する
1 に答える
25082 参照

c# - ASP.NET MVC で Entity Framework を使用して外部キーを持つテーブルにレコードを挿入する方法

私はEntity Frameworkのコードファーストが初めてです。これは、データベースの作成にコード ファーストを使用して、ASP.NET MVC で学んだことです。

私は2つのクラスを持っています:

テーブルを参照する外部キーを持つテーブルにStudentレコードを挿入しようとしています。StudentSubjectIdSubject

私は2つの可能な方法でそれを試しています:

最初のアプローチ

ここでは、新しいSubjectインスタンスを作成しましたSubjectId=202。オブジェクトを作成し、Student値 202 を に割り当てるSubjectIdと、Insertステートメントの競合が発生します。SubjectwithがありますSubjectId = 202が、挿入の競合があるのはなぜですか? Subjectsデバッグすると、ここでナビゲーション プロパティが null であることがわかります。ここの要点がわかりません。

2 番目のアプローチ:

しかし、null参照例外が発生します

オブジェクト参照がオブジェクトのインスタンスに設定されていません

stu.Subjectsヌルがここにあるのはなぜですか?

ここでの私の質問は次のとおりです。

  1. SubjectIdin Studentclass とはどういう意味ですか? つまり、その値は何に関係していますか? Subject明示的に設定できますか? はいの場合、テーブルの主キーを参照しますか? いいえの場合、EF コード規則の目的でのみ指定されていますか?

  2. 同様に: ナビゲーション プロパティの役割は何ですか? null になるのはなぜですか? null にならないのはいつですか?

ナビゲーション プロパティに関する私の基本的な理解は、EF が 2 つのエンティティ間の関係を決定するために使用されるということです。

誰でも、例を挙げて少し明確にしていただければ幸いです。

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

c# - ef core 2 - テーブル 'Y' に FOREIGN KEY 制約 'X' を導入すると、サイクルまたは複数のカスケード パスが発生する可能性があります

そのような質問がすでに多く存在することは知っていますが、私のシナリオでこの問題を解決する方法がわかりません。

私には顧客がいて、売り手もいます。顧客ある必要はありませんが、すべての売り手顧客です。

私の注文には顧客売り手がいますが、売り手はすでに彼の中に顧客を持っています

それは私の顧客エンティティです

私の売り手エンティティ

私の注文エンティティ

私のオーダーマップ

既に移行を追加していますが、'update-database' を設定すると、次のエラー メッセージが表示
されます。ON DELETE NO ACTION または ON UPDATE NO ACTION を指定するか、他の FOREIGN KEY 制約を変更します。制約またはインデックスを作成できませんでした。以前のエラーを参照してください。

これは .netcore2.0 プロジェクトで、ef-core 2 を使用しています