using System;
using System.Linq.Expressions;
namespace FreeSql
{
public interface IRepositoryUnitOfWork : IUnitOfWork
{
///
/// 在工作单元内创建联合主键的仓储类,工作单元下的仓储操作具有事务特点
///
///
///
IBaseRepository GetRepository() where TEntity : class;
IBaseRepository GetRepository() where TEntity : class;
}
class RepositoryUnitOfWork : UnitOfWork, IRepositoryUnitOfWork
{
public RepositoryUnitOfWork(IFreeSql fsql) : base(fsql)
{
}
public IBaseRepository GetRepository() where TEntity : class => GetRepository();
public IBaseRepository GetRepository() where TEntity : class
{
var repo = new DefaultRepository(_fsql);
repo.UnitOfWork = this;
return repo;
}
}
}