コード例 #1
0
 public CustomEntitySetOfT(
     CustomMetadataWorkspace metadata,
     CustomEntitySetType entitySetType,
     CustomEntitySetContainer parentContainer
     )
     : base(metadata, entitySetType, parentContainer)
 {
 }
コード例 #2
0
        public CustomEntitySet(
            CustomMetadataWorkspace metadata,
            CustomEntitySetType entitySetType,
            CustomEntitySetContainer parentContainer
            )
        {
            Debug.Assert(null != metadata);
            Debug.Assert(null != entitySetType);

            _metadata        = metadata;
            _entitySetType   = entitySetType;
            _parentContainer = parentContainer;
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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());
        }