私はモデルとマッピングを2つの異なるファイルに持っています.マッピングクラスでこれを行います:
public class UserEmailMap : EntityTypeConfiguration<UserEmail> {
HasKey(t => new { t.UserId, t.EmailId });
Property(t => t.UserId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(t => t.EmailId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
ToTable("UsersEmails");
Property(t => t.UserId).HasColumnName("UserId");
Property(t => t.EmailId).HasColumnName("EmailId");
Property(t => t.IsPrimary).HasColumnName("IsPrimary");
HasRequired(t => t.Email)
.WithMany(t => t.UserEmails)
.HasForeignKey(d => d.EmailId);
HasRequired(t => t.User)
.WithMany(t => t.UserEmails)
.HasForeignKey(d => d.UserId);
}
現在、ビジュアルスタジオはこれらの行について不平を言っています:
Property(t => t.UserId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
Property(t => t.EmailId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
両方に下線を引くDatabaseGeneratedOption.None
このメッセージで: Argument type 'System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption' is not assignable to parameter type 'System.Nullable<System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption>'
。
そして、私はこれを試しました:
Nullable<DatabaseGeneratedOption> x1 = DatabaseGeneratedOption.None;
DatabaseGeneratedOption? x2 = DatabaseGeneratedOption.None;
Property(t => t.UserId)
.HasDatabaseGeneratedOption(x1);
Property(t => t.EmailId)
.HasDatabaseGeneratedOption(x2);
そして、ここに予期しない部分があります:
Argument type 'System.Nullable<System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption> [mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]' is not assignable to parameter type 'System.Nullable<System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption> [mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]'
x1
と の同じメッセージx2
。
これはコンパイラ エラーを引き起こしませんが、それでもこれを修正したいと思います。何かご意見は?