有什么方法可以将QueryExpression转换为SQL语句吗? 例如:
QueryExpression query = new QueryExpression("entity");
query.ColumnSet = new ColumnSet("col1");
query.Criteria.AddCondition("col2", ConditionOperator.Equal, 1);
到
SELECT col1 FROM entity WHERE col2 = 1
答案 0 :(得分:0)
我假设您是在问是否有自动化的方法,简短的回答是否。除非有人亲自为此编写一个库(我没有见过),否则.NET并不是开箱即用的。
有几个原因,但是最明显的原因是因为QueryExpression实现了SQL本身不支持的功能。它们是可由实体框架执行的操作,因为它可以将所有对象简单地读取到内存中,然后执行所需的任何操作。使用SQL,您必须将这些指令发送到数据库服务器,并且它需要了解您要告诉它做什么。
再次,我并不是说这是不可能的。如果确实愿意,您可能会想出一些非常有创意的方法来模仿Entity Framework的功能,但这将是一场艰苦的战斗。
答案 1 :(得分:0)
解决方案是将查询转换为FetchXML(https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/org-service/sample-convert-queries-fetch-queryexpression),然后找到一些工具或库将FetchXML转换为SQL。