添加插件数据库表

插件通常拥有自己的数据库表结构,在此我们将说明如何在插件中定义插件表名称及字段结构。

参考 TableColumnDataType

  1. public IService AddDatabaseTable(string tableName, List<TableColumn> tableColumns)

tableName 代表表在数据库中的名称,请设置唯一的表名;tableColumns 代表表的数据库中的字段信息。

假设我们用FormDao类存储表名称和字段信息:

  1. public class MyTableDao
  2. {
  3. public const string TableName = "ss_my_table";
  4. public static List<TableColumn> Columns => new List<TableColumn>
  5. {
  6. new TableColumn
  7. {
  8. AttributeName = "Id",
  9. DataType = DataType.Integer
  10. },
  11. new TableColumn
  12. {
  13. AttributeName = "SiteId",
  14. DataType = DataType.Integer
  15. },
  16. new TableColumn
  17. {
  18. AttributeName = "ChannelId",
  19. DataType = DataType.Integer
  20. },
  21. new TableColumn
  22. {
  23. AttributeName = "ContentId",
  24. DataType = DataType.Integer
  25. },
  26. new TableColumn
  27. {
  28. AttributeName = "Title",
  29. DataType = DataType.VarChar,
  30. DataLength = 200
  31. },
  32. new TableColumn
  33. {
  34. AttributeName = "Description",
  35. DataType = DataType.VarChar,
  36. DataLength = 200
  37. },
  38. new TableColumn
  39. {
  40. AttributeName = "Taxis",
  41. DataType = DataType.Integer
  42. },
  43. new TableColumn
  44. {
  45. AttributeName = "IsTimeout",
  46. DataType = DataType.Boolean
  47. },
  48. new TableColumn
  49. {
  50. AttributeName = "TimeToStart",
  51. DataType = DataType.DateTime
  52. },
  53. new TableColumn
  54. {
  55. AttributeName = "TimeToEnd",
  56. DataType = DataType.DateTime
  57. },
  58. new TableColumn
  59. {
  60. AttributeName = "Settings",
  61. DataType = DataType.Text
  62. }
  63. };
  64. }

下面的例子显示添加插件表。

  1. public class Main : PluginBase
  2. {
  3. public override void Startup(IService service)
  4. {
  5. service.AddDatabaseTable(FormDao.TableName, FormDao.Columns);
  6. }
  7. }

可以同时添加多个插件表。

  1. public class Main : PluginBase
  2. {
  3. public override void Startup(IService service)
  4. {
  5. service
  6. .AddDatabaseTable(FormDao.TableName, FormDao.Columns)
  7. .AddDatabaseTable(LogDao.TableName, LogDao.Columns)
  8. .AddDatabaseTable(FieldDao.TableName, FieldDao.Columns)
  9. .AddDatabaseTable(FieldItemDao.TableName, FieldItemDao.Columns);
  10. }
  11. }