3

[OK]をエンティティフレームワーク6に私は1つの文でキーとプロパティデータベースの生成を持っているだろうので:EntityFrameworkコア流暢モデルビルダーキーとプロパティ

modelBuilder.Entity<Function>() 
       .HasKey(x => x.Id) 
       .Property(x => x.Id) 
       .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 

エンティティフレームワークのコアでは(7)これは動作しません。

modelBuilder.Entity<Function>() 
       .HasKey(x => x.Id) 
       .Property(x => x.Id) 
       .ValueGeneratedNever(); 

エラー:

:「『KeyBuilderは』 『プロパティ』なし拡張メソッド 『プロパティ』タイプの最初の引数を受け入れる 『KeyBuilder』の定義が含まれていません」

これは、以下のように2つの独立したステートメントである必要がありますか、EF6のように1つにする方法がありますか?

答えて

4

はい、EFコアでは別です。

理由は、EF6メソッドではPK列を指定することができるため、EntityTypeConfiguration<TEntityType>Entity<...>呼び出しで取得したターゲットと同じです)が返され、エンティティタイプを綿密に設定できるからです。

などをEFコア方法は、リレーショナル制約名用HasNameのように、あなたはさらにPKを設定することができますKeyBuilderと呼ばれる別の型を返す、または特定のデータベースがForSqlServerHasNameForSqlServerIsClusteredなどの属性が