【发布时间】:2019-07-23 05:18:42
【问题描述】:
如何设置两个实体之间的 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
【问题讨论】:
标签: c# entity-framework entity-relationship