//批量生成->本地(持久化操作) private void btnBatchSaveLocal_Click(object sender, EventArgs e) { try { string nameSpace = tbxNameSpace.Text.Trim(); //命名空间 enumTableType tableType = (enumTableType)Enum.Parse(typeof(enumTableType), cbxTable.SelectedItem.ToString()); //当前选中的类型值 //获取当前库中的所有表(当前只做基础表,稍后将该选项抛给前端选择。) TableInfoBll tableInfoBll = new TableInfoBll(); ColumnInfoBll columnInfoBll = new ColumnInfoBll(); List <TableInfo> listTables = tableInfoBll.FindTableInfoByTableType(tableType); foreach (var item in listTables) { //Model持久化 //获取生成的内容 string generateContent = columnInfoBll.DynamicGenerateModel(item.TableName, nameSpace); //缓存内容持久化(保存)到本地 string pathModel = string.Format("{0}/Model", AppDomain.CurrentDomain.BaseDirectory); //模型管理目录 string pathModelFile = string.Format("{0}/Model/{1}.cs", AppDomain.CurrentDomain.BaseDirectory, item.TableName); //模型文件 if (!Directory.Exists(pathModel)) { //不存在 Directory.CreateDirectory(pathModel); } File.WriteAllText(pathModelFile, generateContent, Encoding.UTF8);//写入操作 } MessageBox.Show("数据持久化成功,请前往应用程序所在的目录下查看!"); } catch (Exception) { MessageBox.Show("数据持久化失败!"); } }
/// <summary> /// 根据表的类型 返回数据库中表的列表 /// </summary> /// <param name="type">表的类型</param> /// <returns></returns> public List <TableInfo> FindTableInfoByTableType(enumTableType type) { List <TableInfo> list = null; TableInfoDal dal = new TableInfoDal(); switch (type) { case enumTableType.全部: list = dal.FindAll(); break; case enumTableType.基础表: list = dal.FindBasicTable(); break; case enumTableType.视图: list = dal.FindViewTable(); break; default: list = new List <TableInfo>(); break; } return(list); }
//表类型 更改事件 private void cbxTable_SelectedIndexChanged(object sender, EventArgs e) { //当前选中的值 enumTableType tableType = (enumTableType)Enum.Parse(typeof(enumTableType), cbxTable.SelectedItem.ToString()); //获取当前类型的表 信息列表 TableInfoBll tableInfoBll = new TableInfoBll(); List <TableInfo> listTableInfo = tableInfoBll.FindTableInfoByTableType(tableType); //要操作的类型下的表 列表 string contentTableInfo = string.Join(Environment.NewLine, listTableInfo.Select(p => p.TableName).ToArray()); tbxContent.Text = contentTableInfo; }
private enumTableType GetTableType() { enumTableType ret = enumTableType.Basic; switch (cboTableType.SelectedItem.ToString()) { case "Relation_1_To_N": ret = enumTableType.Relation_1_To_N; break; case "Relation_N_To_N": ret = enumTableType.Relation_N_To_N; break; case "Dictionary": ret = enumTableType.Dictionary; break; } return(ret); }