using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Data; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; namespace WalkingTec.Mvvm.Core { /// /// IDataContext /// public interface IDataContext : IDisposable { /// /// IsFake /// bool IsFake { get; set; } bool IsDebug { get; set; } DBTypeEnum DBType { get; set; } /// /// AddEntity /// /// /// void AddEntity(T entity) where T : TopBasePoco; /// /// UpdateEntity /// void UpdateEntity(T entity) where T : TopBasePoco; /// /// UpdateProperty /// void UpdateProperty(T entity, Expression> fieldExp) where T : TopBasePoco; /// /// UpdateProperty /// void UpdateProperty(T entity, string fieldName) where T : TopBasePoco; /// /// DeleteEntity /// void DeleteEntity(T entity) where T : TopBasePoco; /// /// CascadeDelete /// void CascadeDelete(T entity) where T : TreePoco; /// /// Set /// /// /// DbSet Set() where T : class; /// /// Model /// IModel Model { get; } /// /// Database /// DatabaseFacade Database { get; } /// /// CSName /// string CSName { get; set; } #region SaveChange /// /// SaveChanges /// /// int SaveChanges(); /// /// SaveChanges /// /// int SaveChanges(bool acceptAllChangesOnSuccess); /// /// SaveChangesAsync /// /// Task SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default(CancellationToken)); /// /// SaveChangesAsync /// /// Task SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken)); #endregion /// /// 初始化 /// /// /// /// 返回true即数据新建完成,进入初始化操作,返回false即数据库已经存在 Task DataInit(object AllModel, bool IsSpa); IDataContext CreateNew(); IDataContext ReCreate(); /// /// 执行存储过程,返回datatable /// /// 存储过程名称 /// 参数 /// DataTable RunSP(string command, params object[] paras); IEnumerable RunSP(string command, params object[] paras); /// /// 执行sql语句,返回datatable /// /// 查询sql语句 /// 参数 /// DataTable RunSQL(string command, params object[] paras); IEnumerable RunSQL(string sql, params object[] paras); DataTable Run(string sql, CommandType commandType, params object[] paras); IEnumerable Run(string sql, CommandType commandType, params object[] paras); object CreateCommandParameter(string name, object value, ParameterDirection dir); void SetLoggerFactory(ILoggerFactory factory); } }