Как установить EF-отношение между двумя объектами, в которых первый (основной) объект имеет первичный ключ, а второй (зависимый) не имеет PK, только внешний ключ - для первого объекта.
public class Dogovor
{
public int Key { get;set; }
public string Name { get;set; }
public virtual DogovorStatus Status { get; set; }
}
public class DogovorStatus
{
public int StatusKey { get; set; }
//public int DogovorKey { get; set; } // - no need, because this key is pointed in DogovorConfiguration
}
Я пытался сделать это, но безуспешно:
public class DogovorConfiguration : EntityTypeConfiguration<Dogovor>
{
HasKey(v => v.Key);
Property(v => v.Key)
.IsRequired()
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None)
.HasColumnName("DG_Key");
Property(v => v.Name).
.IsRequired()
.HasColumnName("DG_Name");
HasOptional(v => v.Status)
.WithRequired()
.Map(v => v.MapKey("ST_DGKey"));
}
public class DogovorStatusConfiguration : EntityTypeConfiguration<DogovorStatus> {
HasKey(v => v.StatusKey); // not unique - logical error
Property(v => v.StatusKey)
.IsRequired()
.HasColumnName("ST_StatusKey");
}
Я не могу добавить PK в DogovorStatus.Как правильно указать такой тип EF-отношений?
EF 6.0