예제 #1
0
        /// <summary>
        /// Returns a collection of the <see cref="T:System.Data.Entity.Core.Metadata.Edm.PrimitiveType" /> objects with the specified conceptual model version.
        /// </summary>
        /// <returns>
        /// A ReadOnlyCollection object that represents a collection of the
        /// <see
        ///     cref="T:System.Data.Entity.Core.Metadata.Edm.PrimitiveType" />
        /// objects.
        /// </returns>
        /// <param name="edmVersion">The conceptual model version.</param>
        public ReadOnlyCollection <PrimitiveType> GetPrimitiveTypes(double edmVersion)
        {
            if (edmVersion == XmlConstants.EdmVersionForV1 ||
                edmVersion == XmlConstants.EdmVersionForV1_1 ||
                edmVersion == XmlConstants.EdmVersionForV2)
            {
                return(new ReadOnlyCollection <PrimitiveType>(_primitiveTypeMaps.GetTypes().Where(type => !Helper.IsSpatialType(type) && !Helper.IsHierarchyIdType(type)).ToList()));
            }

            if (edmVersion == XmlConstants.EdmVersionForV3)
            {
                return(_primitiveTypeMaps.GetTypes());
            }

            throw new ArgumentException(Strings.InvalidEDMVersion(edmVersion.ToString(CultureInfo.CurrentCulture)));
        }