protected virtual CustomEntitySet GetEntitySetByName(string entitySetName) { CustomEntitySet entitySet; if (_entitySetMap.TryGetValue(entitySetName, out entitySet)) { return(entitySet); } CustomEntitySetType entitySetType = MetadataWorkspace.GetEntitySet(entitySetName); Type entitySetOfT = typeof(CustomEntitySetOfT <>).MakeGenericType(entitySetType.BaseElementType.ClrObjectType); entitySet = (CustomEntitySet)Activator.CreateInstance(entitySetOfT, MetadataWorkspace, entitySetType, this); return(_entitySetMap[entitySetName] = entitySet); }