Если вы не возражаете против отражения:
var context = Activator.CreateInstance(context.GetType());
Теперь вам нужен либо базовый тип, либо - если вы все еще не против отражения - вы можете просто вызвать метод по имени. Или, поскольку вы используете C # 4, вы можете использовать динамический.
Редактировать: Вы также можете пойти по этому пути:
public static void DoStuff<T>(this T context) where T : ObjectContext, new()
{
using(var newContext = new T())
{
// do stuff
newContext.SaveChanges();
}
context.SaveChanges();
}