using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
namespace FreeSql
{
///
/// 工作单元
///
public interface IUnitOfWork : IDisposable
{
///
/// 开启事务,或者返回已开启的事务
///
/// 若未开启事务,则开启
///
DbTransaction GetOrBeginTransaction(bool isCreate = true);
IsolationLevel? IsolationLevel { get; set; }
void Commit();
void Rollback();
///
/// 是否启用工作单元
///
[Obsolete("即将删除(保留到2020-08-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")]
bool Enable { get; }
///
/// 禁用工作单元
///
///
/// 若已开启事务(已有Insert/Update/Delete操作),调用此方法将发生异常,建议在执行逻辑前调用
///
[Obsolete("即将删除(保留到2020-08-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")]
void Close();
///
/// 开启工作单元
///
[Obsolete("即将删除(保留到2020-08-01),请改用 UnitOfWorkManager 的方式管理事务 https://github.com/dotnetcore/FreeSql/issues/289")]
void Open();
///
/// 工作单元内的实体变化跟踪
///
DbContext.EntityChangeReport EntityChangeReport { get; }
}
}