Entity Framework Coreで部分主キーの自動インクリメント
2023-10-04 05:15:13
質問
EF Core fluent APIを使用して、以下のモデルを宣言しました。
modelBuilder.Entity<Foo>()
.HasKey(p => new { p.Name, p.Id });
PostgreSQLでデータベースを作成する際、両方のフィールドが主キーとしてマークされていますが、Idフィールドは自動インクリメントとしてマークされていません。また
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
をFooの下のIdフィールドに追加しましたが、マイグレーションコード上では何の変化もありません。PPKであるにもかかわらず、IdをAIにする方法はあるのでしょうか?
どのように解決するのですか?
PostgreSQLプロバイダと何か関係があるのかもしれません。
から EF Core ドキュメント :
使用しているデータベースプロバイダによって、値はEFによってクライアント側で生成されるか、データベースで生成されます。 クライアント側でEFによって生成されるか、データベースで生成されます。値がデータベースによって生成される場合 データベースで生成される場合、EF はエンティティをコンテキストに追加するときに一時的な値を割り当てることがあります。 をコンテキストに追加するときに、EF は一時的な値を割り当てます。この一時的な値は の間にデータベースが生成した値に置き換えられます。
SaveChanges
.
このFluent Apiの設定でも試すことができます。
modelBuilder.Entity<Foo>()
.Property(f => f.Id)
.ValueGeneratedOnAdd();
しかし、先ほども言ったように、これはDBプロバイダに関連する何かだと思います。DBに新しい行を追加して、後で
Id
カラムに値が生成されたかどうかを後で確認してください。
関連
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] 不変量名 'System.Data.SqlClient' を持つ ADO.NET プロバイダに対応する Entity Framework プロバイダが見つかりませんでした。
-
[解決済み] Entity Framework 5 レコードを更新する
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み] Entity Frameworkにおける最速の挿入方法
-
[解決済み] Entity Frameworkで生成されたSQLを表示するにはどうすればよいですか?
-
[解決済み】Entity Framework Coreがユニーク制約をコードファーストで追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「未割り当てのローカル変数を使用」とはどういう意味ですか?
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み] 2つのリストを結合する