﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Text;

namespace Sofire.Data
{
    /// <summary>
    /// 定义数据库查询引擎的方法。
    /// </summary>
    public interface IQueryEngine
    {
        /// <summary>
        /// 获取当前上下文的所属引擎。
        /// </summary>
        QueryEngineBase Owner { get; }
        /// <summary>
        /// 创建一个到数据库的连接。
        /// </summary>
        /// <returns>返回一个到数据库的连接。</returns>
        DbConnection CreateConnection();
        /// <summary>
        /// 创建一个有关当前上下文的数据库事务。
        /// </summary>
        /// <returns>返回一个有关当前上下文的数据库事务，可以是一个 null 值。</returns>
        DbTransaction CreateTransaction();
    }
}