EFリバースコードファーストツールが複合キーを生成しています
public vw_ResourcesMap()
{
// Primary Key
this.HasKey(t => new { t.Refno, t.Obsolete }); // Why???
// Properties
this.Property(t => t.Refno)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
this.Property(t => t.Name)
.HasMaxLength(50);
this.Property(t => t.LocnID)
.IsFixedLength()
.HasMaxLength(2);
this.Property(t => t.Created_by)
.HasMaxLength(50);
// Table & Column Mappings
this.ToTable("vw_Resources");
this.Property(t => t.Refno).HasColumnName("Refno");
this.Property(t => t.Name).HasColumnName("Name");
this.Property(t => t.Head).HasColumnName("Head");
this.Property(t => t.LocnID).HasColumnName("LocnID");
this.Property(t => t.Obsolete).HasColumnName("Obsolete");
this.Property(t => t.Created_by).HasColumnName("Created_by");
this.Property(t => t.Version).HasColumnName("Version");
this.Property(t => t.Rank).HasColumnName("Rank");
}
}
関係をマップするために主キー宣言を変更する必要がthis.HasKey(t => t.Refno)
ありました。そうしないと、以下の例外が発生します。
リレーションシップ制約の従属ロールとプリンシパルロールのプロパティの数は同じである必要があります。
多分それはバグです-IDK
すべてが機能していますが、理解と知識を増やしたいと考えています。
ありがとう!