static void Main(string[] args) { //高层模块依赖低层模块 //var order = new Order(); //order.Add(); //DI,构造函数注入方式 //var dal = new SqlServerDal();//在外部创建依赖对象 ////这样依赖对象在Order的外部创建绑定,不影响Order内部的逻辑,可以随时切换数据访问类 ////如:var accessdal=new AccessDal(); //Order order = new Order(dal);//通过构造函数注入依赖 //order.Add(); //DI 属性注入方式 //AccessDal dal = new AccessDal();//在外部创建依赖对象 //Order order = new Order(); //order.Ida = dal;//给属性赋值 //order.Add(); //DI 接口注入方式 var dal = new SqlServerDal(); //在外部创建依赖对象 Order order = new Order(); order.SetDependence(dal); //传递依赖 order.Add(); Console.ReadKey(); }
private BaseDal GetDal(string connString) { BaseDal dal = null; if (this.rbtMysql.Checked) { //dal = new MysqlDal(connString); } if (this.rbtOracle.Checked) { dal = new OracleDal(connString); } if (this.rbtSqlServer.Checked) { dal = new SqlServerDal(connString); } return(dal); }
/// <summary> /// 导出 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnBuild_Click(object sender, EventArgs e) { _savePath = this.tbSavePath.Text; if (_savePath.IsNullOrWhiteSpace()) { this.ShowWarningDialog("没有设置导出目录"); return; } var templatePath = this.cbbTemplate.SelectedValue?.ToString(); if (templatePath.IsNullOrWhiteSpace()) { this.ShowWarningDialog("没有选择模板"); return; } var configIndex = this.cbbConfig.SelectedIndex; if (configIndex < 0) { this.ShowWarningDialog("没有选择配置"); return; } var configModel = jsonUtil.Items[configIndex]; var nameSpace = this.tbNameSapce.Text; if (nameSpace.IsNullOrWhiteSpace()) { this.ShowWarningDialog("没有添加命名空间"); return; } IDbDal dal = null; if (configModel.ConnType == ((int)DbBuildEntity.Util.Enums.DbType.SqlServer).ToString()) { dal = new SqlServerDal(); } else if (configModel.ConnType == ((int)DbBuildEntity.Util.Enums.DbType.Oracle).ToString()) { dal = new OracleDal(); } else if (configModel.ConnType == ((int)DbBuildEntity.Util.Enums.DbType.MySQL).ToString()) { } else if (configModel.ConnType == ((int)DbBuildEntity.Util.Enums.DbType.SQlite).ToString()) { dal = new SqliteDal(); } var tables = dal.GetTables(configModel.ConnString); int index = 0; if (Path.GetFileNameWithoutExtension(templatePath) != "实体枚举模板") { ShowStatus("提示", "导出实体中......", tables.Count, 0); foreach (var table in tables) { //StatusDescription = "导出实体中(" + index + "%)......"; StatusStepIt(); var columnsList = dal.GetColumnList(table.TableName, configModel.ConnString); foreach (var column in columnsList) { if (column.TypeName.Contains("varchar") || column.TypeName.Contains("VARCHAR")) { column.TypeName = "string"; } string value = string.Empty; var dResult = dbTypeDic.TryGetValue(column.TypeName.ToUpper(), out value); if (dResult) { column.TypeName = value; } else { column.TypeName = "object"; } } //var buildContent = RazorBuildUtil.GetBuildContent(templatePath, columnsList, table); var buildContent = RazorBuildUtil.GetBuildContentNew(templatePath, table.TableName, columnsList, table, nameSpace); FileUtil.Save(buildContent, Path.Combine(_savePath, $"{table.TableName}.cs")); index++; } } else { ShowStatus("提示", "加载数据中......", tables.Count, 0); List <TableModels> list = new List <TableModels>(); TableModels model = null; foreach (var table in tables) { //StatusDescription = "加载数据中(" + index + "%)......"; StatusStepIt(); var columnsList = dal.GetColumnList(table.TableName, configModel.ConnString); model = new TableModels(); model.Columns = columnsList; model.TableName = table.TableName; model.Description = table.Description; list.Add(model); index++; } var buildContent = RazorBuildUtil.GetBuildContent_Enum(templatePath, "TableNames", list, nameSpace, "TableNames"); FileUtil.Save(buildContent, Path.Combine(_savePath, "TableNames.cs")); } ConfigUtil.SetAppSettingValue("DefaultPath", _savePath, Global.nameSpaceConfigFullPath); UIMessageTip.ShowOk("导出成功", 2000, true); }