DbRazor.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace SqlSugar
  8. {
  9. public class RazorFirst
  10. {
  11. internal List<KeyValuePair<string,string>> ClassStringList { get; set; }
  12. internal Func<string, string> FormatFileNameFunc { get; set; }
  13. public static string DefaultRazorClassTemplate =
  14. @"using System;
  15. using System.Linq;
  16. using System.Text;
  17. using SqlSugar;
  18. namespace @Model.Namespace
  19. {
  20. ///<summary>
  21. ///
  22. ///</summary>
  23. public partial class @Model.ClassName
  24. {
  25. public @(Model.ClassName)(){
  26. }
  27. @foreach (var item in @Model.Columns)
  28. {
  29. if(item.IsPrimarykey&&item.IsIdentity){
  30. @:/// <summary>
  31. @:/// Desc:@item.ColumnDescription
  32. @:/// Default:@item.DefaultValue
  33. @:/// Nullable:@item.IsNullable
  34. @:/// </summary>
  35. @:[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
  36. @:public @item.DataType @item.DbColumnName {get;set;}
  37. }
  38. else if(item.IsPrimarykey)
  39. {
  40. @:/// <summary>
  41. @:/// Desc:@item.ColumnDescription
  42. @:/// Default:@item.DefaultValue
  43. @:/// Nullable:@item.IsNullable
  44. @:/// </summary>
  45. @:[SqlSugar.SugarColumn(IsPrimaryKey = true)]
  46. @:public @item.DataType @item.DbColumnName {get;set;}
  47. }
  48. else if(item.IsIdentity)
  49. {
  50. @:/// <summary>
  51. @:/// Desc:@item.ColumnDescription
  52. @:/// Default:@item.DefaultValue
  53. @:/// Nullable:@item.IsNullable
  54. @:/// </summary>
  55. @:[SqlSugar.SugarColumn(IsIdentity = true)]
  56. @:public @item.DataType @item.DbColumnName {get;set;}
  57. }
  58. else
  59. {
  60. @:/// <summary>
  61. @:/// Desc:@item.ColumnDescription
  62. @:/// Default:@item.DefaultValue
  63. @:/// Nullable:@item.IsNullable
  64. @:/// </summary>
  65. @:public @item.DataType @item.DbColumnName {get;set;}
  66. }
  67. }
  68. }
  69. }";
  70. public void CreateClassFile(string directoryPath)
  71. {
  72. var seChar = Path.DirectorySeparatorChar.ToString();
  73. if (ClassStringList.HasValue())
  74. {
  75. foreach (var item in ClassStringList)
  76. {
  77. var fileName = item.Key;
  78. if (this.FormatFileNameFunc != null)
  79. {
  80. fileName = this.FormatFileNameFunc(fileName);
  81. }
  82. var filePath = directoryPath.TrimEnd('\\').TrimEnd('/') + string.Format(seChar + "{0}.cs",fileName);
  83. FileHelper.CreateFile(filePath, item.Value, Encoding.UTF8);
  84. }
  85. }
  86. }
  87. public List<KeyValuePair<string, string>> GetClassStringList()
  88. {
  89. return ClassStringList;
  90. }
  91. }
  92. }