protected override void OnSetConnectionString(XDbConnectionStringBuilder builder) { base.OnSetConnectionString(builder); //if (!builder.TryGetValue(_.DataSource, out file)) return; // 允许空,当作内存数据库处理 builder.TryGetValue(_.DataSource, out var file); file = OnResolveFile(file); builder[_.DataSource] = file; FileName = file; }
protected override void OnSetConnectionString(XDbConnectionStringBuilder builder) { base.OnSetConnectionString(builder); String file; if (!builder.TryGetValue("Database", out file)) return; file = ResolveFile(file); builder["Database"] = file; FileName = file; }
protected override void OnSetConnectionString(XDbConnectionStringBuilder builder) { base.OnSetConnectionString(builder); String file; //if (!builder.TryGetValue(_.DataSource, out file)) return; // 允许空,当作内存数据库处理 builder.TryGetValue(_.DataSource, out file); file = OnResolveFile(file); builder[_.DataSource] = file; FileName = file; }
protected override void OnSetConnectionString(XDbConnectionStringBuilder builder) { base.OnSetConnectionString(builder); if (!builder.TryGetValue("Database", out var file)) { return; } file = ResolveFile(file); builder["Database"] = file; FileName = file; }
void LoadConfig(String connStr) { if (String.IsNullOrEmpty(connStr)) { return; } var builder = new XDbConnectionStringBuilder(); builder.ConnectionString = connStr; var ws = ""; var rs = ""; if (!builder.TryGetValue("WriteServer", out ws) || String.IsNullOrEmpty(ws)) { throw new XDbException(this, ExceptionMessage1); } if (!builder.TryGetValue("ReadServer", out rs) || String.IsNullOrEmpty(rs)) { throw new XDbException(this, ExceptionMessage2); } #region 加载写入服务器 String[] ss = ws.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (ss == null || ss.Length < 1) { throw new XDbException(this, ExceptionMessage1); } List <Server> list = new List <Server>(); foreach (String item in ss) { String name = item.Trim(); if (String.IsNullOrEmpty(name)) { continue; } Int32 p = name.IndexOf("*"); if (p > 0) { list.Add(new Server(name.Substring(0, p), Int32.Parse(name.Substring(p + 1)))); } else { list.Add(new Server(name, 0)); } } // 按权重降序 list.Sort(delegate(Server item1, Server item2) { return(-1 * item1.Weight.CompareTo(item2.Weight)); }); WriteServers = list.ToArray(); #endregion #region 加载读取服务器 ss = rs.Split(new Char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (ss == null || ss.Length < 1) { throw new XDbException(this, ExceptionMessage2); } list.Clear(); foreach (String item in ss) { String name = item.Trim(); if (String.IsNullOrEmpty(name)) { continue; } Int32 p = name.IndexOf("*"); if (p > 0) { list.Add(new Server(name.Substring(0, p), Int32.Parse(name.Substring(p + 1)))); } else { list.Add(new Server(name, 1)); } } // 按权重降序 list.Sort(delegate(Server item1, Server item2) { return(-1 * item1.Weight.CompareTo(item2.Weight)); }); ReadServers = list.ToArray(); #endregion }