using System; namespace Test { public class BaseContext { } public class MyDataContext : BaseContext { } public abstract class Entity { } public class Person : Entity { } public sealed class TheBox where T : BaseContext { public U GetById (Guid entityId) where U : Entity { return null; } } public class Program { public static void Main () { TheBox dc = new TheBox (); dc.GetById (Guid.NewGuid ()); } } }