private XmlNode GetDBTypeNode(EnumDBType enuDbType) { string dbtype = enuDbType.ToString(); XmlNode node = m_doc.SelectSingleNode(string.Format("//dbtype[@type='{0}']", dbtype)); if (node == null) { m_doc.LoadXml($"<?xml version=\"1.0\" encoding=\"utf-8\" ?><dbTypes default=\"{enuDbType.ToString()}\"><dbtype></dbtype></dbTypes>"); node = m_doc.SelectSingleNode("//dbtype"); XmlAttribute attr = m_doc.CreateNode(XmlNodeType.Attribute, "type", string.Empty) as XmlAttribute; attr.Value = dbtype; node.Attributes.Append(attr); node.AppendChild(m_doc.CreateNode(XmlNodeType.Element, "displaynull", string.Empty)); node.AppendChild(m_doc.CreateNode(XmlNodeType.Element, "userfieldname", string.Empty)); node.AppendChild(m_doc.CreateNode(XmlNodeType.Element, "traceuser", string.Empty)); node.AppendChild(m_doc.CreateNode(XmlNodeType.Element, "server", string.Empty)); node.AppendChild(m_doc.CreateNode(XmlNodeType.Element, "user", string.Empty)); node.AppendChild(m_doc.CreateNode(XmlNodeType.Element, "password", string.Empty)); node.AppendChild(m_doc.CreateNode(XmlNodeType.Element, "dbname", string.Empty)); node = m_doc.SelectSingleNode(string.Format("//dbtype[@type='{0}']", dbtype)); } return(node); }
/// <summary> /// 创建客户端实现 /// </summary> /// <param name="DBType"></param> /// <returns></returns> public DapperClient CreateClient(EnumDBType DBType) { var client = new DapperClient(new DBConnectionConfig { }); var option = _optionsMonitor.Get(DBType.ToString()).DapperActions.FirstOrDefault(); if (option != null) { option(client.CurrentConnectionConfig); } else { throw new ArgumentNullException(nameof(option)); } return(client); }
/// <summary> /// 有参构造 /// </summary> /// <param name="services"></param> /// <param name="DBType"></param> public DefaultDapperFactoryBuilder(IServiceCollection services, EnumDBType DBType) { Services = services; Name = DBType.ToString(); }