我正在尝试使用 ef 代码优先方法。我有一个基类:
[Serializable]
[Table("PayerEntity")]
public abstract class PayerEntity
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PayerEntityId { get; set; }
}
另一个是它的后代:
[Serializable]
[Table("Group")]
public class Group : PayerEntity
{
public int GroupId { get; set; }
[MaxLength(50,ErrorMessage = "Max 50")]
public string SomeGroupProp { get; set; }
}
在上下文类中,我重写了 OnModelCreating 方法:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Group>().HasKey(p => new { p.PayerEntityId, p.GroupId });
base.OnModelCreating(modelBuilder);
}
但只有“PayerEntityId”列才是主键。我真的很感激任何帮助。
谢谢,彼得