添加插件数据库表
插件通常拥有自己的数据库表结构,在此我们将说明如何在插件中定义插件表名称及字段结构。
参考 TableColumn、DataType。
public IService AddDatabaseTable(string tableName, List<TableColumn> tableColumns)
tableName 代表表在数据库中的名称,请设置唯一的表名;tableColumns 代表表的数据库中的字段信息。
假设我们用FormDao类存储表名称和字段信息:
public class MyTableDao
{
public const string TableName = "ss_my_table";
public static List<TableColumn> Columns => new List<TableColumn>
{
new TableColumn
{
AttributeName = "Id",
DataType = DataType.Integer
},
new TableColumn
{
AttributeName = "SiteId",
DataType = DataType.Integer
},
new TableColumn
{
AttributeName = "ChannelId",
DataType = DataType.Integer
},
new TableColumn
{
AttributeName = "ContentId",
DataType = DataType.Integer
},
new TableColumn
{
AttributeName = "Title",
DataType = DataType.VarChar,
DataLength = 200
},
new TableColumn
{
AttributeName = "Description",
DataType = DataType.VarChar,
DataLength = 200
},
new TableColumn
{
AttributeName = "Taxis",
DataType = DataType.Integer
},
new TableColumn
{
AttributeName = "IsTimeout",
DataType = DataType.Boolean
},
new TableColumn
{
AttributeName = "TimeToStart",
DataType = DataType.DateTime
},
new TableColumn
{
AttributeName = "TimeToEnd",
DataType = DataType.DateTime
},
new TableColumn
{
AttributeName = "Settings",
DataType = DataType.Text
}
};
}
下面的例子显示添加插件表。
public class Main : PluginBase
{
public override void Startup(IService service)
{
service.AddDatabaseTable(FormDao.TableName, FormDao.Columns);
}
}
可以同时添加多个插件表。
public class Main : PluginBase
{
public override void Startup(IService service)
{
service
.AddDatabaseTable(FormDao.TableName, FormDao.Columns)
.AddDatabaseTable(LogDao.TableName, LogDao.Columns)
.AddDatabaseTable(FieldDao.TableName, FieldDao.Columns)
.AddDatabaseTable(FieldItemDao.TableName, FieldItemDao.Columns);
}
}