public CustomEntitySetOfT( CustomMetadataWorkspace metadata, CustomEntitySetType entitySetType, CustomEntitySetContainer parentContainer ) : base(metadata, entitySetType, parentContainer) { }
public CustomEntitySet( CustomMetadataWorkspace metadata, CustomEntitySetType entitySetType, CustomEntitySetContainer parentContainer ) { Debug.Assert(null != metadata); Debug.Assert(null != entitySetType); _metadata = metadata; _entitySetType = entitySetType; _parentContainer = parentContainer; }
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); }
public IQueryable <EntityObjectType> CreateQueryOfT <EntityObjectType>(string entitySetName) { CustomUtils.CheckArgumentNotNull(entitySetName, "entitySetName"); CustomEntitySetType entitySetType = _metadata.GetEntitySet(entitySetName); CustomEntityType entityType = _metadata.GetEntityType(typeof(EntityObjectType)); if (!entitySetType.BaseElementType.IsAssignableFrom(entityType)) { throw new InvalidOperationException(String.Format( "The base element type '{0}' of the entity set '{1}' is not compatible with " + "the queried entity type '{2}'.", entitySetType.BaseElementType, entitySetName, entityType )); } CustomEntitySet entitySet = GetEntitySetByName(entitySetName); Debug.Assert(null != entitySet); Debug.Assert(typeof(IEnumerable <EntityObjectType>).IsAssignableFrom(entitySet.GetType())); return(((IEnumerable <EntityObjectType>)entitySet).AsQueryable()); }