如何在我的Api服务中从Syncfusion QueryBuilder RuleModel中获取sql查询



我在项目中使用Syncfusion查询生成器。我想在我的blazor客户端将RuleModel的json发送到api服务器,在api服务器中,我反序列化并从RuleModel获得sql查询。

我尝试这个代码:

var queryBuilder = new SFQueryBuilder<MyEntity>();
var ruleModel = _jsonSerializer.Deserialize<RuleModel>(ruleJson);
var query = queryBuilder.GetSqlFromRules(ruleModel);

当运行此代码时,我得到NullReferenceException

在我的项目中,我安装Syncfusion.Blazor.QueryBuilder版本:20.3.0.50

我们根据您的要求准备了样品。请参阅下面的代码片段和所附的示例。我们不能像下面的代码中那样使用查询生成器实例;如果我们这样做,查询生成器组件将无法正确呈现,并引发错误。

示例链接-https://www.syncfusion.com/downloads/support/directtrac/general/ze/QueryBuilderSample1558538802

var queryBuilder = new SFQueryBuilder<MyEntity>();
var ruleModel = _jsonSerializer.Deserialize<RuleModel>(ruleJson);
var query = queryBuilder.GetSqlFromRules(ruleModel);

为了解决这个问题,我们引入了一种单独的方法来将规则转换为SQL查询。

[HttpGet("{argument}")]
public void Get(string argument)
{
var rule = JsonConvert.DeserializeObject<RuleModel>(argument);
if (rule != null)
{
var query = GetSqlString(rule, false, null);
}
}

相关内容

  • 没有找到相关文章

最新更新