private void Initialize() { if (this._version == SqlVersion.Sql10 || this._version == SqlVersion.Sql11) { this._primitiveTypes = base.GetStoreTypes(); this._functions = base.GetStoreFunctions(); } else { List <PrimitiveType> primitiveTypeList = new List <PrimitiveType>((IEnumerable <PrimitiveType>)base.GetStoreTypes()); primitiveTypeList.RemoveAll((Predicate <PrimitiveType>)(primitiveType => { if (!primitiveType.Name.Equals("time", StringComparison.OrdinalIgnoreCase) && !primitiveType.Name.Equals("date", StringComparison.OrdinalIgnoreCase) && (!primitiveType.Name.Equals("datetime2", StringComparison.OrdinalIgnoreCase) && !primitiveType.Name.Equals("datetimeoffset", StringComparison.OrdinalIgnoreCase)) && !primitiveType.Name.Equals("geography", StringComparison.OrdinalIgnoreCase)) { return(primitiveType.Name.Equals("geometry", StringComparison.OrdinalIgnoreCase)); } return(true); })); if (this._version == SqlVersion.Sql8) { primitiveTypeList.RemoveAll((Predicate <PrimitiveType>)(primitiveType => { if (!primitiveType.Name.Equals("xml", StringComparison.OrdinalIgnoreCase)) { return(primitiveType.Name.EndsWith("(max)", StringComparison.OrdinalIgnoreCase)); } return(true); })); } this._primitiveTypes = new ReadOnlyCollection <PrimitiveType>((IList <PrimitiveType>)primitiveTypeList); IEnumerable <EdmFunction> source = base.GetStoreFunctions().Where <EdmFunction>((Func <EdmFunction, bool>)(f => !SqlProviderManifest.IsKatmaiOrNewer(f))); if (this._version == SqlVersion.Sql8) { source = source.Where <EdmFunction>((Func <EdmFunction, bool>)(f => !SqlProviderManifest.IsYukonOrNewer(f))); } this._functions = new ReadOnlyCollection <EdmFunction>((IList <EdmFunction>)source.ToList <EdmFunction>()); } }