Do you want to verify that TContext has an element that is a <T> table? If so, the only way to do this is to define an interface for this contract and change your general restrictions
interface IMyTable<T> {
Table<T> Table;
}
public MyClass<TContext,T> where TContext : DataContext,IMyTable<T>
EDIT
Jason posted an explanatory commentary on my answer. The name table is not static; it depends on type T.
. , , , IMyTable < gt; DataContext Table.
interface IMyTable2<T> {
DataContext DataContext {get; }
Table<T> Table {get; }
}
class MyAdapter: IMyTable2<T> {
private MyOtherClass<T> _other;
public DataContext DataContext { get { return _other.DataContext } }
public Table<T> Table { get { return _other.TableWithDifferentName; } }
}