[]
如果插件中引用了数据表名或者字段名,一旦数据表或字段重命名后,插件中的相关属性的值就期望被同步;
这种情况下就需要实现这个接口,而且,当查找数据表或字段的引用时,插件中的相关属性也会被查找出来。
public interface IReferenceTable
public class ListCellType : CellType, IReferenceTable
{
public string TableName { get; set; }
public string TextColumn { get; set; }
public string ValueColumn { get; set; }
public IEnumerable<LocatedObject<TableCheckInfo>> GetTableInfo(LocationIndicator location)
{
var list = new List<LocatedObject<TableCheckInfo>>();
TableCheckInfo info = new TableCheckInfo(TableName);
var columns = (new List<string>() { ValueColumn, TextColumn }).Distinct();
foreach (var col in columns)
{
info.AddColumns(col);
}
var newLocation = location.AppendProperty("ListCellType");
list.Add(new LocatedObject<TableCheckInfo>(info, newLocation));
return list;
}
public void RenameTableColumnName(string tableName, string oldName, string newName)
{
if (string.Equals(this.TableName, tableName))
{
if (oldName == this.ValueColumn)
{
this.ValueColumn = newName;
}
if (oldName == this.TextColumn)
{
this.TextColumn = newName;
}
}
}
public void RenameTableName(string oldName, string newName)
{
if(string.Equals(this.TableName, oldName))
{
this.TableName = newName;
}
}
}
返回插件中所有引用数据表和字段的信息。
IEnumerable<LocatedObject<TableCheckInfo>> GetTableInfo(LocationIndicator location)
类型 | 名称 | 描述 |
---|---|---|
LocationIndicator | location | 原有坐标定位器。 |
类型 | 描述 |
---|---|
System.Collections.Generic.IEnumerable<T><LocatedObject<TableCheckInfo>> | 返回插件中所有引用数据表和字段的信息。 |
一旦数据表中字段被重命名时会调用该函数,所以需实现该接口重命名插件中使用到的相关字段名。
void RenameTableColumnName(string tableName, string oldName, string newName)
类型 | 名称 | 描述 |
---|---|---|
string | tableName | 数据表名。 |
string | oldName | 重命名之前的字段名。 |
string | newName | 重命名之后的字段名。 |
一旦数据表被重命名时会调用该函数,所以需实现该接口重命名插件中使用到的相关表名。
void RenameTableName(string oldName, string newName)
类型 | 名称 | 描述 |
---|---|---|
string | oldName | 重命名之前的数据表名。 |
string | newName | 重命名之后的数据表名。 |