OData Controllers offer an easy interface between data and your application, but require one controller per model type. These controllers often have a large amount of almost identical code.
This source explores OData using a single controller using C# Generics. The code accompanies the matching blog post.