問題タブ [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.
c# - ASP.NET MVC で Entity Framework を使用して外部キーを持つテーブルにレコードを挿入する方法
私はEntity Frameworkのコードファーストが初めてです。これは、データベースの作成にコード ファーストを使用して、ASP.NET MVC で学んだことです。
私は2つのクラスを持っています:
テーブルを参照する外部キーを持つテーブルにStudent
レコードを挿入しようとしています。Student
SubjectId
Subject
私は2つの可能な方法でそれを試しています:
最初のアプローチ
ここでは、新しいSubject
インスタンスを作成しましたSubjectId=202
。オブジェクトを作成し、Student
値 202 を に割り当てるSubjectId
と、Insert
ステートメントの競合が発生します。Subject
withがありますSubjectId = 202
が、挿入の競合があるのはなぜですか? Subjects
デバッグすると、ここでナビゲーション プロパティが null であることがわかります。ここの要点がわかりません。
2 番目のアプローチ:
しかし、null参照例外が発生します
オブジェクト参照がオブジェクトのインスタンスに設定されていません
stu.Subjects
ヌルがここにあるのはなぜですか?
ここでの私の質問は次のとおりです。
SubjectId
inStudent
class とはどういう意味ですか? つまり、その値は何に関係していますか?Subject
明示的に設定できますか? はいの場合、テーブルの主キーを参照しますか? いいえの場合、EF コード規則の目的でのみ指定されていますか?同様に: ナビゲーション プロパティの役割は何ですか? null になるのはなぜですか? null にならないのはいつですか?
ナビゲーション プロパティに関する私の基本的な理解は、EF が 2 つのエンティティ間の関係を決定するために使用されるということです。
誰でも、例を挙げて少し明確にしていただければ幸いです。
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 を使用しています