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


C# DbConnectionStringBuilder.Cast方法代码示例

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


在下文中一共展示了DbConnectionStringBuilder.Cast方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CheckDatabase

		private void CheckDatabase()
		{
			if (_entityRegistry.Version.Compare(HydraEntityRegistry.LatestVersion) == 0)
				return;

			var database = (Database)_entityRegistry.Storage;

			var conStrBuilder = new DbConnectionStringBuilder { ConnectionString = database.ConnectionString };

			var path = (string)conStrBuilder.Cast<KeyValuePair<string, object>>().ToDictionary(StringComparer.InvariantCultureIgnoreCase).TryGetValue("Data Source");

			if (path == null)
				throw new InvalidOperationException(LocalizedStrings.Str2895);

			File.Copy(path, "{0}.bak.{1:yyyyMMdd}".Put(path, DateTime.Now), true);

			if (_entityRegistry.Version.Compare(new Version(2, 5)) == 0)
			{
				var schema = typeof(Security).GetSchema();

				var binaryOptType = Query
					.AlterTable(schema)
					.AddColumn(schema.Fields["BinaryOptionType"]);

				Execute(binaryOptType, schema);

				var multiplier = Query
					.AlterTable(schema)
					.AddColumn(schema.Fields["Multiplier"]);

				Execute(multiplier, schema);

				var update = Query
					.Update(schema)
					.Set(new SetPart("Multiplier", "VolumeStep"));

				Execute(update, schema);

				_entityRegistry.Version = new Version(2, 6);
			}
			
			if (_entityRegistry.Version.Compare(new Version(2, 6)) == 0)
			{
				var schema = typeof(News).GetSchema();

				var localTime = Query
					.AlterTable(schema)
					.AddColumn(schema.Fields["LocalTime"]);

				Execute(localTime, schema);

				var serverTime = Query
					.AlterTable(schema)
					.AddColumn(schema.Fields["ServerTime"]);

				Execute(serverTime, schema);

				_entityRegistry.Version = new Version(2, 7);
			}

			if (_entityRegistry.Version.Compare(new Version(2, 7)) == 0)
			{
				Execute(@"
					update HydraTaskSecurity
					set
						[Security] = '[email protected]'
					where
						[Security] LIKE '[email protected]%'");

				_entityRegistry.Version = new Version(2, 8);
			}

			if (_entityRegistry.Version.Compare(new Version(2, 8)) == 0)
			{
				Execute(@"
					update HydraTaskSecurity
					set
						[CandleSeries] = replace([CandleSeries], '<From>01/01/0001 00:00:00</From>', '<From>01/01/0001 00:00:00 +00:00</From>')");

				Execute(@"
					update HydraTaskSecurity
					set
						[CandleSeries] = replace([CandleSeries], '<To>9999-12-31T23:59:59.9999999</To>', '<To>12/31/9999 23:59:59 +00:00</To>')");

				_entityRegistry.Version = new Version(2, 9);
			}

			if (_entityRegistry.Version.Compare(new Version(2, 9)) == 0)
			{
				Execute(@"
					update HydraTaskSettings
					set
						[ExtensionInfo] = replace([ExtensionInfo], '<From>01/01/0001 00:00:00</From>', '<From>01/01/0001 00:00:00 +00:00</From>')");

				_entityRegistry.Version = new Version(2, 10);
			}

			if (_entityRegistry.Version.Compare(new Version(2, 10)) == 0)
			{
				Execute(@"
//.........这里部分代码省略.........
开发者ID:sunwayru,项目名称:StockSharp,代码行数:101,代码来源:MainWindow_Migration.cs

示例2: InitializeDataSource

		private void InitializeDataSource()
		{
			var entityRegistry = ConfigManager.GetService<IEntityRegistry>();

			var database = (Database)((EntityRegistry)entityRegistry).Storage;

			if (database == null)
				return;

			var conStr = new DbConnectionStringBuilder
			{
				ConnectionString = database.ConnectionString
			};

			var dbFile = (string)conStr.Cast<KeyValuePair<string, object>>().ToDictionary(StringComparer.InvariantCultureIgnoreCase).TryGetValue("Data Source");

			if (dbFile == null)
				return;

			dbFile = dbFile.Replace("%Documents%", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));

			conStr["Data Source"] = dbFile;
			database.ConnectionString = conStr.ToString();

			dbFile.CreateDirIfNotExists();

			if (!File.Exists(dbFile))
				Properties.Resources.StockSharp.Save(dbFile);
		}
开发者ID:greatGregLiu,项目名称:StockSharp,代码行数:29,代码来源:MainWindow.xaml.cs

示例3: InitializeDataSource

		private void InitializeDataSource()
		{
			_storageRegistry = new StorageRegistry();
			ConfigManager.RegisterService(_storageRegistry);

			_entityRegistry = (HydraEntityRegistry)ConfigManager.GetService<IEntityRegistry>();
			_entityRegistry.TasksSettings.Recycle = false;
			((SecurityList)_entityRegistry.Securities).BulkLoad = true;

			var database = (Database)_entityRegistry.Storage;

			if (database != null)
			{
				var conStr = new DbConnectionStringBuilder
				{
					ConnectionString = database.ConnectionString
				};

				_dbFile = (string)conStr.Cast<KeyValuePair<string, object>>().ToDictionary(StringComparer.InvariantCultureIgnoreCase).TryGetValue("Data Source");

				if (_dbFile != null)
				{
					_dbFile = _dbFile.Replace("%Documents%", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));

					conStr["Data Source"] = _dbFile;
					database.ConnectionString = conStr.ToString();

					_dbFile.CreateDirIfNotExists();

					if (!File.Exists(_dbFile))
					{
						Properties.Resources.StockSharp.Save(_dbFile);
						_entityRegistry.Version = HydraEntityRegistry.LatestVersion;

						UpdateDatabaseWalMode();
					}
				}
			}

			CheckDatabase();

			ConfigManager.RegisterService<IExchangeInfoProvider>(new ExchangeInfoProvider(_entityRegistry));

			var allSec = _entityRegistry.Securities.ReadById(Core.Extensions.AllSecurityId);

			if (allSec != null)
				return;

			_entityRegistry.Securities.Add(new Security
			{
				Id = Core.Extensions.AllSecurityId,
				Code = "ALL",
				//Class = task.GetDisplayName(),
				Name = LocalizedStrings.Str2835,
				Board = ExchangeBoard.Associated,
				ExtensionInfo = new Dictionary<object, object>(),
			});
			_entityRegistry.Securities.DelayAction.WaitFlush();
		}
开发者ID:ZhaoYngTest01,项目名称:StockSharp,代码行数:59,代码来源:MainWindow.xaml.cs

示例4: GetProviderInvariantNameByConnectionString

        public static string GetProviderInvariantNameByConnectionString(string connectionString)
        {
            if (connectionString == null) return null;

            var builder = new DbConnectionStringBuilder { ConnectionString = connectionString };

            object providerValue;
            if (builder.TryGetValue("provider", out providerValue))
            {
                return providerValue.ToString();
            }

            var persistSecurityInfo = false;
            object persistSecurityInfoValue;
            if (builder.TryGetValue("persist security info", out persistSecurityInfoValue))
            {
                persistSecurityInfo = Convert.ToBoolean(persistSecurityInfoValue);
            }

            var lostPassword = !persistSecurityInfo && !builder.ContainsKey("pwd") && !builder.ContainsKey("password");

            if (!lostPassword)
            {
                for (var i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++)
                {
                    var config = ConfigurationManager.ConnectionStrings[i];
                    if (string.Equals(config.ConnectionString, connectionString, StringComparison.OrdinalIgnoreCase))
                    {
                        return config.ProviderName;
                    }
                }
            }
            else
            {
                object uid;
                if (builder.TryGetValue("uid", out uid))
                {
                    builder.Remove("uid");
                    builder["user id"] = uid;
                }

                for (var i = 0; i < ConfigurationManager.ConnectionStrings.Count; i++)
                {
                    var config = ConfigurationManager.ConnectionStrings[i];

                    var otherBuilder = new DbConnectionStringBuilder { ConnectionString = config.ConnectionString };
                    otherBuilder.Remove("pwd");
                    otherBuilder.Remove("password");

                    object otherUid;
                    if (otherBuilder.TryGetValue("uid", out otherUid))
                    {
                        otherBuilder.Remove("uid");
                        otherBuilder["user id"] = otherUid;
                    }

                    if (otherBuilder.Count != builder.Count) continue;

                    var equivalenCount = builder.Cast<KeyValuePair<string, object>>().Select(p =>
                    {
                        object value;
                        return otherBuilder.TryGetValue(p.Key, out value) && string.Equals(Convert.ToString(value), Convert.ToString(p.Value), StringComparison.OrdinalIgnoreCase) ? 1 : 0;
                    }).Sum();

                    if (equivalenCount == builder.Count)
                    {
                        return config.ProviderName;
                    }
                }
            }

            return null;
        }
开发者ID:Rgl88,项目名称:Yarn,代码行数:73,代码来源:DbFactory.cs


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