[]
在服务端命令中,可以通过 dataContext.DataAccess 属性对数据库进行增删改查。
本例中使用的示例数据库如下:
参数为OData字符串:
using GrapeCity.Forguncy.Commands;
using Newtonsoft.Json;
using System.Threading.Tasks;
namespace MyPlugin
{
public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
{
public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
{
var data = dataContext.DataAccess.GetTableData("表1?$select=ID,字段1,小数");
return new ExecuteResult() { Message = JsonConvert.SerializeObject(data) };
}
public override CommandScope GetCommandScope()
{
return CommandScope.ExecutableInServer;
}
}
}
效果如下:
using GrapeCity.Forguncy.Commands;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace MyPlugin
{
public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
{
public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
{
dataContext.DataAccess.AddTableData("表1", new Dictionary<string, object>
{
{"字段1", "xxx" },
{"小数", "1.5" }
});
return new ExecuteResult();
}
public override CommandScope GetCommandScope()
{
return CommandScope.ExecutableInServer;
}
}
}
执行结果:
using GrapeCity.Forguncy.Commands;
using GrapeCity.Forguncy.ServerApi;
using System.Threading.Tasks;
namespace MyPlugin
{
public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
{
public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
{
dataContext.DataAccess.DeleteTableData("表1", new ColumnValuePair()
{
ColumnName = "ID",
Value = 2
});
return new ExecuteResult();
}
public override CommandScope GetCommandScope()
{
return CommandScope.ExecutableInServer;
}
}
}
执行结果:
using GrapeCity.Forguncy.Commands;
using GrapeCity.Forguncy.ServerApi;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace MyPlugin
{
public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
{
public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
{
dataContext.DataAccess.UpdateTableData("表1", new ColumnValuePair()
{
ColumnName = "ID",
Value = 2
},
new Dictionary<string, object>()
{
{"字段1", "xxx" },
{"小数", "1.5" }
});
return new ExecuteResult();
}
public override CommandScope GetCommandScope()
{
return CommandScope.ExecutableInServer;
}
}
}
执行结果: