public T GetById <T, TKey>(TKey id) where T : class { if (typeof(OID).IsAssignableFrom(typeof(TKey))) { return((T)_context.Session.GetObjectFromId((OID)id)); } var predicate = _metaDataProvider.BuildPrimaryKeyExpression <T, TKey>(id); return(All <T>().FirstOrDefault(predicate)); }