Preheat the oven to 350 degrees F. Spray a large casserole dish with cooking spray.
Heat a large frying pan over medium-high heat, add the sausage, breaking it up into small pieces. When the sausage is just starting to brown add the onion. Cook and stir until almost completely browned, adding the garlic in the last minute or two. When the sausage is completely browned, remove it from the pan to a plate, set aside.
In the same frying pan, add half of the canola oil. Cook the hashbrowns in batches in a single layer according to the package directions until crispy.
Add a thin layer of cooked hashbrowns to the casserole dish.
Crack the eggs into a medium mixing bowl. Add the milk, salt, and pepper. Whisk until scrambled.
Top the layer of hashbrowns with the cooked sausage mixture, then layer the remaining hashbrowns on top of the sausage. Pour the eggs over the casserole. Sprinkle the shredded cheese over the top.
Bake, uncovered, in the preheated oven for 30 minutes or until the eggs are set. Let the casserole sit for 5 minutes before serving.
This recipe is adapted from Plain Chicken Sausage Hash Brown Breakfast Casserole