C# 使用SqlSugar根据数据库表结构生成实体类模型

上文主要介绍了使用C#使用SqlSugar来建立数据库连接。但是在实际的操作过程中。如果想通过SqlSugar的数据库连接来进行增删改查来操作数据库。还需要和数据库字段结构对应的C# Model 对象。
如果是手动操作一个一个的去建立实体类将会是非常繁琐的。本文主要介绍通过生成工具,借助SqlSuagr来时间自动化的方法。将数据库中的实体类转换成为C# Entity。

读取数据库的表信息

  1. List<SqlSugar.DbTableInfo> tableInfo = sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().DbMaintenance.GetTableInfoList(false);
  2. IEnumerable<DBTableInfo> list = tableInfo.Select(
  3. (item) => {
  4. return new DBTableInfo() { Name = item.Name, Description = item.Description, IsChecked = false };
  5. });
  6. DataBaseTableInfo = new ObservableCollection<DBTableInfo>(list);

其中DataBaseTableInfo是绑定到wpf上的ObservableCollection对象。是界面展示的数据源。

根据数据源将表结构转换成为C# model 类

  1. var tableList = DataBaseTableInfo.Where((item) => { return item.IsChecked; });
  2. if (tableList == null || tableList.Count() == 0)
  3. {
  4. //MessageBoxR.Waring("未选择数据");
  5. MessageBox.Show("未选择数据");
  6. return;
  7. }
  8. string targetPath = "";
  9. using (var dialog = new FolderBrowserDialog())
  10. {
  11. DialogResult result = dialog.ShowDialog();
  12. if (result == DialogResult.OK)
  13. {
  14. targetPath = dialog.SelectedPath;
  15. }
  16. }
  17. if (!string.IsNullOrEmpty(targetPath))
  18. {
  19. //可以进行转换
  20. string nameSpace = NameSpaceTxt;
  21. foreach (var item in tableList)
  22. {
  23. // var columnInfo = sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().DbMaintenance.GetColumnInfosByTableName(item.Name, false);
  24. var fileName = Path.Combine(targetPath);
  25. sqlsugar.SqlSugarHelper.GetInstance().GetDataBase().DbFirst.Where(item.Name).FormatPropertyName(it=> it.Replace("-","_")).SettingPropertyDescriptionTemplate(old=> {
  26. var n = old;
  27. return "";
  28. }).SettingPropertyTemplate((columns, temp, type) => {
  29. var jsonAttr = "\r\n [JsonProperty(\"{0}\")]"; ;
  30. string att = string.Format(jsonAttr, columns.DbColumnName);
  31. var columnattribute = "\r\n [SugarColumn({0})]";
  32. List<string> attributes = new List<string>();
  33. if (columns.IsPrimarykey)
  34. attributes.Add("IsPrimaryKey=true");
  35. if (columns.IsIdentity)
  36. attributes.Add("IsIdentity=true");
  37. if (attributes.Count == 0)
  38. {
  39. columnattribute = "";
  40. }
  41. var dbStr = temp.Replace("{PropertyType}", type)
  42. .Replace("{PropertyName}", columns.DbColumnName)
  43. .Replace("{SugarColumn}", string.Format(columnattribute, string.Join(",", attributes)));
  44. var result = att + dbStr;
  45. return result;
  46. }).CreateClassFile(fileName, nameSpace);
  47. }
  48. }

这里仅仅描述了。代码的逻辑实现,该工具通过wpf实现界面逻辑。wpf的相关逻辑将会在接下来的文章中分析。

通过上面两端代码就可以将 数据库中的表结构转换成为C#类文件。然后在vs中直接饮用就可以了。

本人从事上位机开发,熟悉 C# WinForm WPF 开发。

联系方式

Tel:17320170935(微信同号-添加请备注微见-KTV)
QQ:472198980 (添加请备注 微见-KTV)

2024-04-13 10:21:57  user 阅读(162) 评论(0) 标签:C#,sqlSugar,数据库,表结构,数据库模型,ORM 分类:C#