MetadataItemCollectionFactory.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntityDesign / Design / System / Data / Entity / Design / MetadataItemCollectionFactory.cs / 1305376 / MetadataItemCollectionFactory.cs

                            //---------------------------------------------------------------------- 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// 
// @owner  	 [....]
// @backupOwner [....] 
//--------------------------------------------------------------------- 

using System.Data.Entity; 
using System.Data.EntityModel;
using System.Xml;
using System.Collections.Generic;
using System.Data.Common; 
using System.Data.Metadata.Edm;
using System.Data.Mapping; 
using System.Data.Entity.Design.Common; 
using Microsoft.Build.Utilities;
using System.Data.Entity.Design.SsdlGenerator; 
using System.Diagnostics;
using System.Linq;

namespace System.Data.Entity.Design 
{
    ///  
    /// Factory for creating ItemCollections. This class is to be used for 
    /// design time scenarios. The consumers of the methods in this class
    /// will get an error list instead of an exception if there are errors in schema files. 
    /// 
    [CLSCompliant(false)]
    public static class MetadataItemCollectionFactory
    { 
        /// 
        /// Create an EdmItemCollection with the passed in parameters. 
        /// Add any errors caused during the ItemCollection creation 
        /// to the error list passed in.
        ///  
        /// 
        /// 
        /// 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Edm")] 
        public static EdmItemCollection CreateEdmItemCollection(IEnumerable readers,
            out IList errors) 
        { 
            System.Collections.ObjectModel.ReadOnlyCollection filePaths = null;
            return new EdmItemCollection(readers, filePaths, out errors); 
        }

        /// 
        /// Create an EdmItemCollection with the passed in parameters. 
        /// Add any errors caused during the ItemCollection creation
        /// to the error list passed in. 
        ///  
        /// 
        ///  
        /// 
        /// 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Edm")]
        public static EdmItemCollection CreateEdmItemCollection(IEnumerable readers, 
            Version targetEntityFrameworkVersion,
            out IList errors) 
        { 
            EDesignUtil.CheckTargetEntityFrameworkVersionArgument(targetEntityFrameworkVersion, "targetEntityFrameworkVersion");
 
            EdmItemCollection edmItemCollection = CreateEdmItemCollection(readers, out errors);
            if (!errors.Any(e => e.Severity == EdmSchemaErrorSeverity.Error))
            {
                CheckActualVersionAgainstTarget(targetEntityFrameworkVersion, EntityFrameworkVersions.ConvertToVersion(edmItemCollection.EdmVersion), errors); 
            }
 
            return edmItemCollection; 
        }
 
        private static void CheckActualVersionAgainstTarget(Version maxExpectedVersion, Version actualVersion, IList errors)
        {
            if (!(actualVersion <= maxExpectedVersion))
            { 
                errors.Add(new EdmSchemaError(Strings.TargetVersionSchemaVersionMismatch(maxExpectedVersion, actualVersion), (int)ModelBuilderErrorCode.SchemaVersionHigherThanTargetVersion, EdmSchemaErrorSeverity.Error));
            } 
        } 

        ///  
        /// Create an StoreItemCollection with the passed in parameters.
        /// Add any errors caused during the ItemCollection creation
        /// to the error list passed in.
        ///  
        /// 
        ///  
        ///  
        /// 
        public static StoreItemCollection CreateStoreItemCollection(IEnumerable readers, 
            out IList errors)
        {
            return new StoreItemCollection(readers, null, out errors);
        } 

        ///  
        /// Create an StoreItemCollection with the passed in parameters. 
        /// Add any errors caused during the ItemCollection creation
        /// to the error list passed in. 
        /// 
        /// 
        /// 
        ///  
        /// 
        ///  
        public static StoreItemCollection CreateStoreItemCollection( 
            IEnumerable readers,
            Version targetEntityFrameworkVersion, 
            out IList errors)
        {
            EDesignUtil.CheckTargetEntityFrameworkVersionArgument(targetEntityFrameworkVersion, "targetEntityFrameworkVersion");
            return CreateStoreItemCollection(readers, out errors); 
        }
 
 
        /// 
        /// Create a StorageMappingItemCollection with the passed in parameters. 
        /// Add any errors caused during the ItemCollection creation
        /// to the error list passed in.
        /// 
        ///  
        /// 
        ///  
        ///  
        /// 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "edm")] 
        public static StorageMappingItemCollection CreateStorageMappingItemCollection(EdmItemCollection edmCollection,
            StoreItemCollection storeCollection, IEnumerable readers, out IList errors)
        {
            return new StorageMappingItemCollection(edmCollection, storeCollection, readers, null, out errors); 
        }
 
        ///  
        /// Create a StorageMappingItemCollection with the passed in parameters.
        /// Add any errors caused during the ItemCollection creation 
        /// to the error list passed in.
        /// 
        /// 
        ///  
        /// 
        ///  
        ///  
        /// 
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "edm")] 
        public static StorageMappingItemCollection CreateStorageMappingItemCollection(
            EdmItemCollection edmCollection,
            StoreItemCollection storeCollection,
            IEnumerable readers, 
            Version targetEntityFrameworkVersion,
            out IList errors) 
        { 
            EDesignUtil.CheckArgumentNull(edmCollection, "edmCollection");
            EDesignUtil.CheckArgumentNull(storeCollection, "storeCollection"); 
            EDesignUtil.CheckArgumentNull(readers, "readers");
            EDesignUtil.CheckTargetEntityFrameworkVersionArgument(targetEntityFrameworkVersion, "targetEntityFrameworkVersion");
            if (EntityFrameworkVersions.ConvertToVersion(edmCollection.EdmVersion) > targetEntityFrameworkVersion)
            { 
                throw EDesignUtil.Argument("edmCollection");
            } 
 
            StorageMappingItemCollection storageMappingItemCollection = CreateStorageMappingItemCollection(edmCollection, storeCollection, readers, out errors);
            if (!errors.Any(e => e.Severity == EdmSchemaErrorSeverity.Error)) 
            {
                CheckActualVersionAgainstTarget(targetEntityFrameworkVersion, EntityFrameworkVersions.ConvertToVersion(storageMappingItemCollection.MappingVersion), errors);
            }
            return storageMappingItemCollection; 
        }
    } 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK