using Ant.Data; using System; using System.Collections.Generic; using System.Linq.Expressions; namespace Ant.ORM { /// <summary> /// 定义接口 /// </summary> public interface IDbContext : IDisposable { //IDbSession CurrentSession { get; } /// <summary> /// 组装SQL语句 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> IQuery<T> Query<T>() where T : new(); /// <summary> /// 自定义SQL语句 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sql"></param> /// <param name="parameters"></param> /// <returns></returns> IEnumerable<T> SqlQuery<T>(string sql, params DbParam[] parameters) where T : new(); /// <summary> /// 保存 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <returns></returns> T Insert<T>(T entity); /// <summary> /// 保存 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="body"></param> /// <returns>PrimaryKey</returns> object Insert<T>(Expression<Func<T>> body); /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <returns></returns> int Update<T>(T entity); /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="body"></param> /// <param name="condition"></param> /// <returns></returns> int Update<T>(Expression<Func<T, T>> body, Expression<Func<T, bool>> condition); /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="entity"></param> /// <returns></returns> int Delete<T>(T entity); /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="condition"></param> /// <returns></returns> int Delete<T>(Expression<Func<T, bool>> condition); /// <summary> /// /// </summary> /// <param name="entity"></param> void TrackEntity(object entity); } }