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;
}
}
}