Introduction to IRepository
The IRepository is a generic interface and it has T is a BaseEntity. It's contained in namespace Aaron.Core.Data. It's very important, and is considered the lifeline of Aaron systems.The IRepository got 8 functions to support basic database accessing:
///<summary>/// Inserts the specified obj.///</summary>///<param name="obj">The object to insert.</param>void Insert(T obj); ///<summary>/// Updates the specified obj.///</summary>///<param name="obj">The object to delete.</param>void Update(T obj); ///<summary>/// Deletes the specified id.///</summary>///<param name="id">The identity of object to delete.</param>void Delete(object id); ///<summary>/// Deletes the specified obj.///</summary>///<param name="obj">The object to delete.</param>void Delete(T obj); ///<summary>/// Deletes the specified data.///</summary>///<param name="data">The data is a specified list from database.</param>void Delete(IQueryable<T> data); ///<summary>/// Gets the specified filter.///</summary>///<param name="filter">The filter for specified list.</param>///<param name="skip">The skip of specified row.</param>///<param name="take">The records want be taken.</param>///<param name="orderBy">The order by.</param>///<param name="includeProperties">The include properties to join many tables.</param>///<returns></returns> IQueryable<T> Get(Expression<Func<T, bool>> filter = null, int skip = 0, int take = 0, Func<IQueryable<T>, IOrderedQueryable<T>> orderBy = null, string includeProperties = null); ///<summary>/// Gets the by id.///</summary>///<param name="id">The id.</param>///<returns></returns> T GetById(object id); ///<summary>/// Gets the table.///</summary> IQueryable<T> Table { get; }
- Declare a field scope is private, and get a similar attribute from constructor:
privatereadonly IRepository<Article> _articleRepository; // The ctor of Example class.public Example(IRepository<Article> articleRepository) { _articleRepository = articleRepository; }
- Or use the IoC.Resolve<T>() method to call IRepository:
var articleRepository = IoC.Resolve<IRepository<Article>>();
I hope this article helpful for you. Thanks for the reference!