当前位置: 首页>>代码示例>>C#>>正文


C# Common.DbProviderManifest类代码示例

本文整理汇总了C#中System.Data.Common.DbProviderManifest的典型用法代码示例。如果您正苦于以下问题:C# DbProviderManifest类的具体用法?C# DbProviderManifest怎么用?C# DbProviderManifest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DbProviderManifest类属于System.Data.Common命名空间,在下文中一共展示了DbProviderManifest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CreateDbCommandDefinition

        protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, System.Data.Common.CommandTrees.DbCommandTree commandTree)
        {
            if (providerManifest == null)
                throw new ArgumentNullException("providerManifest");

            if (commandTree == null)
                throw new ArgumentNullException("commandTree");

            NuoDbCommand command = new NuoDbCommand(PrepareTypeCoercions(commandTree));

            List<DbParameter> parameters;
            CommandType commandType;
            command.CommandText = SqlGenerator.GenerateSql(commandTree, out parameters, out commandType);
            command.CommandType = commandType;

            // Get the function (if any) implemented by the command tree since this influences our interpretation of parameters
            EdmFunction function = null;
            if (commandTree is DbFunctionCommandTree)
            {
                function = ((DbFunctionCommandTree)commandTree).EdmFunction;
            }

            foreach (KeyValuePair<string, TypeUsage> queryParameter in commandTree.Parameters)
            {
                NuoDbParameter parameter;

                // Use the corresponding function parameter TypeUsage where available (currently, the SSDL facets and
                // type trump user-defined facets and type in the EntityCommand).
                FunctionParameter functionParameter;
                if (null != function && function.Parameters.TryGetValue(queryParameter.Key, false, out functionParameter))
                {
                    parameter = CreateSqlParameter(functionParameter.Name, functionParameter.TypeUsage, functionParameter.Mode, DBNull.Value);
                }
                else
                {
                    parameter = CreateSqlParameter(queryParameter.Key, queryParameter.Value, ParameterMode.In, DBNull.Value);
                }

                command.Parameters.Add(parameter);
            }

            // Now add parameters added as part of SQL gen (note: this feature is only safe for DML SQL gen which
            // does not support user parameters, where there is no risk of name collision)
            if (null != parameters && 0 < parameters.Count)
            {
                if (!(commandTree is DbInsertCommandTree) &&
                  !(commandTree is DbUpdateCommandTree) &&
                  !(commandTree is DbDeleteCommandTree))
                {
                    throw new InvalidOperationException("SqlGenParametersNotPermitted");
                }

                foreach (DbParameter parameter in parameters)
                {
                    command.Parameters.Add(parameter);
                }
            }

            return CreateCommandDefinition(command);
        }
开发者ID:biegomar,项目名称:nuodb-dotnet,代码行数:60,代码来源:NuoDbProviderServices.cs

示例2: LegacyDbProviderManifestWrapperTests

        static LegacyDbProviderManifestWrapperTests()
        {
            LegacyProviderManifest =
                ((Legacy.DbProviderServices)
                 ((IServiceProvider)Legacy.DbProviderFactories.GetFactory("System.Data.SqlClient"))
                     .GetService(typeof(Legacy.DbProviderServices)))
                    .GetProviderManifest("2008");

            ProviderManifestWrapper = new LegacyDbProviderManifestWrapper(LegacyProviderManifest);

            const string emptyCsdl =
                @"<Schema xmlns=""http://schemas.microsoft.com/ado/2009/11/edm"" Namespace=""dummy"" />";

            using (var reader = XmlReader.Create(new StringReader(emptyCsdl)))
            {
                EdmPrimitiveTypes =
                    new EdmItemCollection(new[] { reader }).GetItems<PrimitiveType>().ToDictionary(t => t.Name, t => t);
            }

            using (var reader = XmlReader.Create(new StringReader(emptyCsdl)))
            {
                LegacyEdmPrimitiveTypes =
                    new LegacyMetadata.EdmItemCollection(new[] { reader })
                        .GetItems<LegacyMetadata.PrimitiveType>()
                        .ToDictionary(t => t.Name, t => t);
            }
        }
开发者ID:Cireson,项目名称:EntityFramework6,代码行数:27,代码来源:LegacyDbProviderManifestWrapperTests.cs

示例3: CreateDbCommandDefinition

 /// <summary>
 /// create the database command definition.
 /// </summary>
 /// <param name="providerManifest">The provider manifest.</param>
 /// <param name="commandTree">The command tree.</param>
 /// <returns>the command definition.</returns>
 protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, System.Data.Common.CommandTrees.DbCommandTree commandTree)
 {
     var cmdDef = _wrapped.CreateCommandDefinition(providerManifest, commandTree);
     var cmd = cmdDef.CreateCommand();
     Debug.Assert(cmd != null, "cmd != null");
     return CreateCommandDefinition(new ProfiledDbCommand(cmd, cmd.Connection, _profiler));
 }
开发者ID:CurufinweU,项目名称:dotnet,代码行数:13,代码来源:ProfiledDbProviderServices.cs

示例4: CreateDbCommandDefinition

        /// <summary>
        /// Create a Command Definition object, given the connection and command tree
        /// </summary>
        /// <param name="connection">connection to the underlying provider</param>
        /// <param name="commandTree">command tree for the statement</param>
        /// <returns>an exectable command definition object</returns>
        /// <exception cref="ArgumentNullException">connection and commandTree arguments must not be null</exception>
        protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) {
            EntityUtil.CheckArgumentNull(providerManifest, "providerManifest");
            EntityUtil.CheckArgumentNull(commandTree, "commandTree");

            StoreItemCollection storeMetadata = (StoreItemCollection)commandTree.MetadataWorkspace.GetItemCollection(DataSpace.SSpace);
            return this.CreateCommandDefinition(storeMetadata.StoreProviderFactory, commandTree);
        }
开发者ID:uQr,项目名称:referencesource,代码行数:14,代码来源:EntityProviderServices.cs

示例5: CreateProviderManifest

		/// <summary>
		/// Creates the provider manifest wrapper.
		/// </summary>
		/// <param name="providerInvariantName">Provider invariant name.</param>
		/// <param name="providerManifest">The provider manifest to be wrapped.</param>
		/// <returns><see cref="DbProviderManifest"/> wrapper for given provider invariant name wrapping given provider manifest.</returns>
		public virtual DbProviderManifest CreateProviderManifest(string providerInvariantName, DbProviderManifest providerManifest)
		{
			return new DbProviderManifestWrapper(
				ProviderInvariantName,
				providerInvariantName,
				providerManifest);
		}
开发者ID:matteomigliore,项目名称:HSDK,代码行数:13,代码来源:DbProviderServicesBase.cs

示例6: CreateDbCommandDefinition

 /// <summary>
 /// Create a Command Definition object, given the connection and command tree
 /// </summary>
 /// <param name="providerManifest">provider manifest that was determined from metadata</param>
 /// <param name="commandTree">command tree for the statement</param>
 /// <returns>an exectable command definition object</returns>
 protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree) {
     Debug.Assert(providerManifest != null, "CreateCommandDefinition passed null provider manifest to CreateDbCommandDefinition?");
     Debug.Assert(commandTree != null, "CreateCommandDefinition did not validate commandTree argument?");
                 
     DbCommand prototype = CreateCommand(providerManifest, commandTree);
     DbCommandDefinition result = this.CreateCommandDefinition(prototype);
     return result;
 }
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:14,代码来源:SqlProviderServices.cs

示例7: PrimitiveType

 /// <summary>
 /// The constructor for PrimitiveType, it takes in a CLR type containing the identity information
 /// </summary>
 /// <param name="clrType">The CLR type object for this primitive type</param>
 /// <param name="baseType">The base type for this primitive type</param>
 /// <param name="providerManifest">The ProviderManifest of the provider of this type</param>
 internal PrimitiveType(Type clrType,
                        PrimitiveType baseType,
                        DbProviderManifest providerManifest)
     : this(EntityUtil.GenericCheckArgumentNull(clrType, "clrType").Name, clrType.Namespace,
     DataSpace.OSpace, baseType, providerManifest)
 {
     Debug.Assert(clrType == ClrEquivalentType, "not equivalent to ClrEquivalentType");
 }
开发者ID:krytht,项目名称:DotNetReferenceSource,代码行数:14,代码来源:PrimitiveType.cs

示例8: CreateDbCommandDefinition

        /// <summary>
        /// Creates the command definition wrapper for a given provider manifest and command tree.
        /// </summary>
        /// <param name="providerManifest">The provider manifest.</param>
        /// <param name="commandTree">The command tree.</param>
        /// <returns><see cref="DbCommandDefinition"/> object.</returns>
        protected override DbCommandDefinition CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
        {
            var wrapperManifest = (DbProviderManifestWrapper)providerManifest;
            var createDbCommandDefinitionFunction = this.GetCreateDbCommandDefinitionFunction(wrapperManifest.WrappedProviderManifestInvariantName);

            DbCommandDefinition definition = createDbCommandDefinitionFunction(wrapperManifest.WrappedProviderManifest, commandTree);
            return this.CreateCommandDefinitionWrapper(definition, commandTree);
        }
开发者ID:gyb333,项目名称:Learning,代码行数:14,代码来源:DbProviderServicesBase.cs

示例9: DbProviderManifestWrapper

		/// <summary>
		/// Initializes a new instance of the DbProviderManifestWrapper class.
		/// </summary>
		/// <param name="wrapperProviderInvariantName">Wrapper provider invariant name.</param>
		/// <param name="providerInvariantName">Provider invariant name.</param>
		/// <param name="wrappedProviderManifest">The wrapped provider manifest.</param>
		public DbProviderManifestWrapper(
			string wrapperProviderInvariantName,
			string providerInvariantName,
			DbProviderManifest wrappedProviderManifest)
		{
			this.wrapperProviderInvariantName = wrapperProviderInvariantName;
			this.providerInvariantName = providerInvariantName;
			this.wrappedProviderManifest = wrappedProviderManifest;
		}
开发者ID:matteomigliore,项目名称:HSDK,代码行数:15,代码来源:DbProviderManifestWrapper.cs

示例10: CreateDbCommandDefinition

        protected override DbCommandDefinition CreateDbCommandDefinition(
            DbProviderManifest providerManifest, DbCommandTree commandTree)
        {
            if (commandTree == null)
                throw new ArgumentNullException("commandTree");

            SqlGenerator generator = null;
            if (commandTree is DbQueryCommandTree)
                generator = new SelectGenerator();
            else if (commandTree is DbInsertCommandTree)
                generator = new InsertGenerator();
            else if (commandTree is DbUpdateCommandTree)
                generator = new UpdateGenerator();
            else if (commandTree is DbDeleteCommandTree)
                generator = new DeleteGenerator();
            else if (commandTree is DbFunctionCommandTree)
                generator = new FunctionGenerator();

            string sql = generator.GenerateSQL(commandTree);

            EFMySqlCommand cmd = new EFMySqlCommand();
            cmd.CommandText = sql;
            if (generator is FunctionGenerator)
                cmd.CommandType = (generator as FunctionGenerator).CommandType;

            SetExpectedTypes(commandTree, cmd);

            EdmFunction function = null;
            if (commandTree is DbFunctionCommandTree)
                function = (commandTree as DbFunctionCommandTree).EdmFunction;

            // Now make sure we populate the command's parameters from the CQT's parameters:
            foreach (KeyValuePair<string, TypeUsage> queryParameter in commandTree.Parameters)
            {
                DbParameter parameter = cmd.CreateParameter();
                parameter.ParameterName = queryParameter.Key;
                parameter.Direction = ParameterDirection.Input;
                parameter.DbType = Metadata.GetDbType(queryParameter.Value);

                FunctionParameter funcParam;
                if (function != null &&
                    function.Parameters.TryGetValue(queryParameter.Key, false, out funcParam))
                {
                    parameter.ParameterName = funcParam.Name;
                    parameter.Direction = Metadata.ModeToDirection(funcParam.Mode);
                    parameter.DbType = Metadata.GetDbType(funcParam.TypeUsage);
                }
                cmd.Parameters.Add(parameter);
            }

            // Now add parameters added as part of SQL gen
            foreach (DbParameter p in generator.Parameters)
                cmd.Parameters.Add(p);

            return CreateCommandDefinition(cmd);
        }
开发者ID:noahvans,项目名称:mariadb-connector-net,代码行数:56,代码来源:ProviderServices.cs

示例11: LegacyDbProviderManifestWrapper

        public LegacyDbProviderManifestWrapper(Legacy.DbProviderManifest wrappedProviderManifest)
        {
            Debug.Assert(wrappedProviderManifest != null, "wrappedProviderManifest != null");

            _wrappedProviderManifest = wrappedProviderManifest;

            _legacyStoreTypes = _wrappedProviderManifest.GetStoreTypes().ToArray();
            _storeTypes =
                new ReadOnlyCollection<PrimitiveType>(
                    _legacyStoreTypes.Select(t => ConvertFromLegacyStoreEdmType(t, this)).ToList());
        }
开发者ID:Cireson,项目名称:EntityFramework6,代码行数:11,代码来源:LegacyDbProviderManifestWrapper.cs

示例12: StoreItemCollection

        // used by EntityStoreSchemaGenerator to start with an empty (primitive types only) StoreItemCollection and 
        // add types discovered from the database
        internal StoreItemCollection(DbProviderFactory factory, DbProviderManifest manifest, string providerManifestToken)
            : base(DataSpace.SSpace)
        {
            Debug.Assert(factory != null, "factory is null");
            Debug.Assert(manifest != null, "manifest is null");

            _providerFactory = factory;
            _providerManifest = manifest;
            _providerManifestToken = providerManifestToken;
            _cachedCTypeFunction = new Memoizer<EdmFunction, EdmFunction>(ConvertFunctionSignatureToCType, null);
            LoadProviderManifest(_providerManifest, true /*checkForSystemNamespace*/);
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:14,代码来源:StoreItemCollection.cs

示例13: GetProviderInfo

        public static DbProviderInfo GetProviderInfo(
            this DbConnection connection, out DbProviderManifest providerManifest)
        {
            //Contract.Requires(connection != null);

            var providerServices = DbProviderServices.GetProviderServices(connection);
            var providerManifestToken = providerServices.GetProviderManifestTokenChecked(connection);
            var providerInfo = new DbProviderInfo(connection.GetProviderInvariantName(), providerManifestToken);

            providerManifest = providerServices.GetProviderManifest(providerManifestToken);

            return providerInfo;
        }
开发者ID:jimmy00784,项目名称:entityframework,代码行数:13,代码来源:DbConnectionExtensions.cs

示例14: Configure

        internal override void Configure(
            IEnumerable<Tuple<DbEdmPropertyMapping, DbTableMetadata>> propertyMappings,
            DbProviderManifest providerManifest,
            bool allowOverride = false)
        {
            base.Configure(propertyMappings, providerManifest, allowOverride);

            propertyMappings
                .Each(
                    pm =>
                        {
                            if (IsRowVersion != null)
                            {
                                pm.Item1.Column.Facets.MaxLength = null;
                            }
                        });
        }
开发者ID:jimmy00784,项目名称:entityframework,代码行数:17,代码来源:BinaryPropertyConfiguration.cs

示例15: CreateCommandDefinition

 /// <summary>
 /// Create a Command Definition object given a command tree.
 /// </summary>
 /// <param name="commandTree">command tree for the statement</param>
 /// <returns>an exectable command definition object</returns>
 /// <remarks>
 /// This method simply delegates to the provider's implementation of CreateDbCommandDefinition.
 /// </remarks>
 public DbCommandDefinition CreateCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree)
 {
     try
     {
         return CreateDbCommandDefinition(providerManifest, commandTree);
     }
     catch (ProviderIncompatibleException)
     {
         throw;
     }
     catch (Exception e)
     {
         if (EntityUtil.IsCatchableExceptionType(e))
         {
             throw EntityUtil.ProviderIncompatible(Strings.ProviderDidNotCreateACommandDefinition, e);
         }
         throw;
     }
 }
开发者ID:uQr,项目名称:referencesource,代码行数:27,代码来源:DbProviderServices.cs


注:本文中的System.Data.Common.DbProviderManifest类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。