如何使用uow模式在EF中使用存储过程?

时间:2014-06-02 07:10:00

标签: c# entity-framework design-patterns

我的IunitOfWork

中有一个名为DataLayer的界面
public interface IUnitOfWork
{
    IDbSet<TEntity> Set<TEntity>() where TEntity : class;

    int SaveChanges();

    IList<TEntity> SQLQueries<TEntity>( string _sql ) where TEntity : class;

}

和我的Context

public class Context : DbContext, IUnitOfWork
{
   public DbSet<Slider> MySlider { get; set; }
    public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
        {
            return base.Set<TEntity>();
         }


     public IList<TEntity> SQLQueries<TEntity>( string _sql ) where TEntity : class
     {
        return base.Database.SqlQuery<TEntity>(_sql).ToList();
        // Is it good to use 'ToList()' here or not??
     }
 }

在我的Service我有:

public  interface ISlider
{

    IList<DomainModel.Slider> SliderGetAll();
  }

和:

public class Slider:ISlider
{
       IUnitOfWork _uow;
    IDbSet<DomainModel.Slider> _slider;
    IList<DomainModel.Slider> _slider2;



    public Slider( IUnitOfWork uow )
    {
        _uow=uow;
        _slider = _uow.Set<DomainModel.Slider>();

    }
    public IList<DomainModel.Slider> SliderGetAll()
    {

        var slide=_uow.SQLQueries<DomainModel.Slider>("SliderGetAll");
        return slide;
    }
  }

它以这种方式工作,我想知道它使用Stored Procedure的好方法吗?

注意:我使用结构图进行DI。

0 个答案:

没有答案