質問: フィールドをID列としてマークする方法に関する多くの投稿と回答を見てきました。それらの多くは時代遅れであり、古いバージョンのEntity Frameworkを対象としています。 いくつかのリソースは、フィールドで属性を使用するように指示しています。 ``` [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int ID { get; set; } ``` その他のリソースでは、このコードを`OnModelCreating`メソッドに追加するよう指示されています。 ``` modelBuilder.Entity().Property(u => u.ID).HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity); ``` どちらを使うべきですか?まず第一に、第二の、両方、問題ではない、または何か他のですか?
回答: 主キープロパティの型が数値またはGUIDである限り、コードファーストは慣例により、キーをID列として自動的に構成します。 つまり、コードファーストは既にコフェアを使用しているため、プロパティをID列として明示的に設定するためにコードに設定する必要はありません。あなたが設定したデータ注釈属性または流暢なAPI設定は役に立ちません。 これらの構成は、IDまたはGUIDタイプのプライマリキーで使用する場合は、IDを無効にする必要があります。