网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using System;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Dpz.Core.Infrastructure;
using Dpz.Core.Infrastructure.Entity;
using MongoDB.Driver.Linq;

namespace Dpz.Core.MongodbAccess;

public interface IUnitOfWork : IDisposable
{
    /// <summary>
    /// 开始工作单元
    /// </summary>
    /// <returns></returns>
    void Begin();
    
    /// <summary>
    /// 获取指定的仓储库
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    IRepository<T> GetRepository<T>() where T : IBaseEntity, new();

    /// <summary>
    /// 获取指定集合名称的仓储库
    /// </summary>
    /// <param name="collectionName">集合名称</param>
    /// <typeparam name="T"></typeparam>
    /// <returns></returns>
    IRepository<T> GetRepository<T>(string collectionName) where T : IBaseEntity, new();

    /// <summary>
    /// 异步。保存对数据库的所有更改
    /// </summary>
    /// <returns></returns>
    Task CommitAsync();

    /// <summary>
    /// 异步。回滚事务
    /// </summary>
    /// <returns></returns>
    Task RollbackAsync();
}
loading