12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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
- {
- /// <summary>
- /// ORM首先调该类进行SQL语句的解析(ORM的入口)
- /// </summary>
- class DbExpressionTranslator : IDbExpressionTranslator
- {
- public static readonly DbExpressionTranslator Instance = new DbExpressionTranslator();
- /// <summary>
- /// 返回拼接的SQL语句
- /// </summary>
- /// <param name="expression"></param>
- /// <param name="parameters"></param>
- /// <returns></returns>
- public string Translate(DbExpression expression, out List<DbParam> parameters)
- {
- SqlGenerator generator = SqlGenerator.CreateInstance();//构建SQL数据库类
- expression.Accept(generator);
- parameters = generator.Parameters;
- string sql = generator.SqlBuilder.ToSql();
- return sql;
- }
- }
- /// <summary>
- /// ORM实现SQL2012数据库的带分页查询类
- /// </summary>
- class DbExpressionTranslator_OffsetFetch : IDbExpressionTranslator
- {
- public static readonly DbExpressionTranslator_OffsetFetch Instance = new DbExpressionTranslator_OffsetFetch();
- /// <summary>
- /// 返回拼接的SQL语句
- /// </summary>
- /// <param name="expression"></param>
- /// <param name="parameters"></param>
- /// <returns></returns>
- public string Translate(DbExpression expression, out List<DbParam> parameters)
- {
- SqlGenerator_OffsetFetch generator = new SqlGenerator_OffsetFetch();
- expression.Accept(generator);
- parameters = generator.Parameters;
- string sql = generator.SqlBuilder.ToSql();
- return sql;
- }
- }
- }
|