0

私は、次のとおり流暢APIを使用して設定を追加しよう:「短い」タイプは、ジェネリック型のパラメータ「TTargetEntity」としてそれを使用するために、参照型でなければなりません

public class PeriodTypeMappings: EntityTypeConfiguration<PeriodType> 
    { 
     public PeriodTypeMappings() 
     { 
      this.HasKey(p => p.PeriodTypeId); 
      this.Property(p => p.PeriodTypeName).HasMaxLength(value: 25); 
      this.HasRequired(p => p.PeriodTypeName); 
      this.HasRequired(p => p.NumberOfPartitions);//compile error 
     } 
    } 

しかし、

型「短い」(ジェネリック型またはメソッド 「EntityTypeConfiguration.HasRequiredに パラメータとして「TTargetEntity」を、それを使用するために、参照型でなければなりません例:私は、次の例外を取得しますPRESSION>「)

は例外がNumberOfPartitionsが短いタイプのものであり、最後の行this.HasRequired(p => p.NumberOfPartitions);で発生しました。

なぜこの問題が起こったのか、この問題を解決するには、このフィールドが必須であると言います。

答えて

2

がマッピングナビゲーションプロパティのために使用されているHasRequired。あなたが探しているのはIsRequiredです。しかし、あなたのプロパティがnullableでない場合は、デフォルトで必須です。マッピングは次のようになります。

this.HasKey(p => p.PeriodTypeId); 

this.Property(p => p.PeriodTypeName) 
    .IsRequired() 
    .HasMaxLength(25); 

this.Property(p => p.NumberOfPartitions) 
    .IsRequired(); 
関連する問題