En Entity Framework, ¿cómo agrego una entidad genérica a su DbSet correspondiente sin una instrucción switch que enumere todos los DbSets posibles?

Tengo dos tipos de entidades: una entidad de empleado y una entidad de oficina, con una relación de uno a muchos entre los dos, de modo que hay muchos empleados para una oficina. Para EF, se crea un DbSet en el archivo de contexto para cada entidad:

public DbSet<Office> Offices { get; set; }
public DbSet<Employee> Employees { get; set; }

Un tutorial de EF que hice me hizo hacer mis métodos CRUD para una entidad específica. Por ejemplo, el siguiente método crea una oficina y la agrega a la oficina DbSet (ignore las cosas de MVC; ya no lo hago):

public ActionResult Create([Bind(Include = "Address,BusinessName")] Office office)
    {
        try
        {

            if (ModelState.IsValid)
            {
                db.Offices.Add(office);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

        }
        catch (DataException /* dex */)
        {
            //Log the error (uncomment dex variable name and add a line here to write a log.
            ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
        }
        return View(office);
    }

Básicamente, las dos cosas que quiero enfatizar es que un objeto de Office se pasa al método, y que la oficina se agrega al Office DbSet escribiendo explícitamente db.

db.Offices.Add(office);

Sin embargo, necesito escribir un método en el que se pueda pasar un objeto de entidad genérico, y puedo agregar esto a su DbSet correcto. La idea aproximada del método que tengo es algo como esto (he ignorado todas las cosas de MVC):

public void Create(object entityToCreate)
{
    db.CorrespondingEntityType.Add(entityToCreate);
    db.SaveChanges();
}

Entonces, digamos que tengo un objeto Empleado. Puedo pasar a este Empleado al método Crear y puede ver que se trata de un Empleado, por lo que lo agregaría al DbSet de Empleados. Sin embargo, no sé si EF lo admite. Una alternativa sería hacer una declaración de cambio y de esa manera, dependiendo del tipo de entidad que se pasa, podría llamar directamente a qué DbSet para agregar la entidad. Pero quiero evitar eso porque trabajaré con muchas más entidades además de estas dos. También tendré que hacer cosas similares para los otros métodos CRUD.

Yo viesta documentación de msdn sobre el método ObjectSet.AddObject, y parece que debería ser útil, pero no estoy seguro de cómo funciona.

Respuestas a la pregunta(2)

Su respuesta a la pregunta