Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        /// <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);
        }