本文整理汇总了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(@"
//.........这里部分代码省略.........
示例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);
}
示例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();
}
示例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;
}