using Ant.Core; using Ant.Data; using Ant.DbExpressions; using Ant.Infrastructure; using Ant.ORM; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ant.SqlServer { /// /// ORM首先调该类进行SQL语句的解析(ORM的入口) /// class DbExpressionTranslator : IDbExpressionTranslator { public static readonly DbExpressionTranslator Instance = new DbExpressionTranslator(); /// /// 返回拼接的SQL语句 /// /// /// /// public string Translate(DbExpression expression, out List parameters) { SqlGenerator generator = SqlGenerator.CreateInstance();//构建SQL数据库类 expression.Accept(generator); parameters = generator.Parameters; string sql = generator.SqlBuilder.ToSql(); return sql; } } /// /// ORM实现SQL2012数据库的带分页查询类 /// class DbExpressionTranslator_OffsetFetch : IDbExpressionTranslator { public static readonly DbExpressionTranslator_OffsetFetch Instance = new DbExpressionTranslator_OffsetFetch(); /// /// 返回拼接的SQL语句 /// /// /// /// public string Translate(DbExpression expression, out List parameters) { SqlGenerator_OffsetFetch generator = new SqlGenerator_OffsetFetch(); expression.Accept(generator); parameters = generator.Parameters; string sql = generator.SqlBuilder.ToSql(); return sql; } } }