public class CommonFields
{
    public int Status { get; set; }
    public DateTime CreatedOn { get; set; }
    public int? CreatedById { get; set; }
    public virtual User CreatedBy { get; set; }
    public DateTime ModifiedOn { get; set; }
    public virtual User ModifiedBy { get; set; }
    public int? ModifiedById { get; set; }
}
并且您必须为 DbContext 中的所有派生实体定义关系
protected override void OnModelCreating(DbModelBuilder mb)
{
    mb.Entity<User>().HasOptional(x => x.CreatedBy).WithMany().HasForeignKey(x => x.CreatedById).WillCascadeOnDelete(false);
    mb.Entity<User>().HasOptional(x => x.ModifiedBy).WithMany().HasForeignKey(x => x.ModifiedById).WillCascadeOnDelete(false);
    mb.Entity<Employee>().HasOptional(x => x.CreatedBy).WithMany().HasForeignKey(x => x.CreatedById).WillCascadeOnDelete(false);
    mb.Entity<Employee>().HasOptional(x => x.ModifiedBy).WithMany().HasForeignKey(x => x.ModifiedById).WillCascadeOnDelete(false);
}
编辑:
或者你可以使用 TPH。然后你的模型创建看起来像这样
protected override void OnModelCreating(DbModelBuilder mb)
{
    mb.Entity<CommonFields>().
            .Map(x => x.ToTable("Users"))
            .Map<User>(x => x.Requires("__type").HasValue(1)
            .Map<Employee>(x => x.Requires("__type").HasValue(2);
    mb.Entity<CommonFields>().HasOptional(x => x.CreatedBy).WithMany().HasForeignKey(x => x.CreatedById).WillCascadeOnDelete(false);
    mb.Entity<CommonFields>().HasOptional(x => x.ModifiedBy).WithMany().HasForeignKey(x => x.ModifiedById).WillCascadeOnDelete(false);
}