DatabaseModels.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. using System;
  2. using System.Collections.Generic;
  3. namespace TeamAAS.Database.Models
  4. {
  5. /// <summary>
  6. /// 数据库连接配置
  7. /// </summary>
  8. public class DatabaseConfig
  9. {
  10. /// <summary>
  11. /// 数据库唯一标识
  12. /// </summary>
  13. public Guid Id { get; set; } = Guid.NewGuid();
  14. /// <summary>
  15. /// 显示名称
  16. /// </summary>
  17. public string Name { get; set; }
  18. /// <summary>
  19. /// 提供者类型(mysql / sqlite / sqlserver 等)
  20. /// </summary>
  21. public string ProviderType { get; set; }
  22. /// <summary>
  23. /// 服务器地址(文件型数据库填文件路径)
  24. /// </summary>
  25. public string Server { get; set; }
  26. /// <summary>
  27. /// 端口(文件型数据库可忽略)
  28. /// </summary>
  29. public int Port { get; set; }
  30. /// <summary>
  31. /// 数据库名(SQLite 可填文件名或留空)
  32. /// </summary>
  33. public string DatabaseName { get; set; }
  34. /// <summary>
  35. /// 用户名
  36. /// </summary>
  37. public string UserId { get; set; }
  38. /// <summary>
  39. /// 密码
  40. /// </summary>
  41. public string Password { get; set; }
  42. /// <summary>
  43. /// 连接超时(秒)
  44. /// </summary>
  45. public int ConnectionTimeout { get; set; } = 30;
  46. /// <summary>
  47. /// 自定义连接字符串(优先于上面的字段拼接)
  48. /// </summary>
  49. public string ConnectionString { get; set; }
  50. /// <summary>
  51. /// 扩展参数(各提供者特有配置)
  52. /// </summary>
  53. public Dictionary<string, string> ExtraParams { get; set; } = new Dictionary<string, string>();
  54. }
  55. /// <summary>
  56. /// 表列信息
  57. /// </summary>
  58. public class ColumnInfo
  59. {
  60. public string ColumnName { get; set; }
  61. public string DataType { get; set; }
  62. public bool IsNullable { get; set; }
  63. public bool IsPrimaryKey { get; set; }
  64. public int MaxLength { get; set; }
  65. public string DefaultValue { get; set; }
  66. public string Description { get; set; }
  67. }
  68. /// <summary>
  69. /// 数据库提供者类型信息(用于反射发现)
  70. /// </summary>
  71. public class DatabaseProviderInfo
  72. {
  73. /// <summary>
  74. /// 提供者类型标识(小写,如 mysql、sqlite)
  75. /// </summary>
  76. public string ProviderType { get; set; }
  77. /// <summary>
  78. /// 显示名称(如 MySQL、SQLite)
  79. /// </summary>
  80. public string DisplayName { get; set; }
  81. /// <summary>
  82. /// 实现类类型完整名
  83. /// </summary>
  84. public Type ImplementationType { get; set; }
  85. /// <summary>
  86. /// 是否需要服务器(文件型数据库为 false)
  87. /// </summary>
  88. public bool RequiresServer { get; set; }
  89. /// <summary>
  90. /// 描述
  91. /// </summary>
  92. public string Description { get; set; }
  93. }
  94. }