دوره ی آموزشی Entity Framework in the Enterprise سایت Pluralsight
نویسنده: شاهین کیاست
تاریخ: ۱۳۹۱/۱۰/۲۵ ۳:۳
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
public interface IBranchRepository
{
IQueryable<Branch> GetAll();
IQueryable<Branch> GetAllWithAll();
void Update(Branch branch);
void Create(Branch branch);
void Delete(Branch branch);
IQueryable<Branch> GetAllwithCorporate();
}
public class BranchRepository : BaseRepository, IBranchRepository
{
public BranchRepository(IUnitOfWork unitOfWork) : base(unitOfWork)
{
}
public IQueryable<Branch> GetAll()
{
return GetDbSet<Branch>();
}
public IQueryable<Branch> GetAllWithAll()
{
return GetDbSet<Branch>().Include(x=>x.Corporate).Include(x=>x.City).Include(x=>x.Province);
}
public IQueryable<Branch> GetAllwithCorporate()
{
return GetDbSet<Branch>().Include(x=>x.Corporate);
}
public void Update(Branch branch)
{
SetCurrentValues(GetDbSet<Branch>().FirstOrDefault(x => x.BranchID == branch.BranchID),branch);
unitOfWork.SaveChanges();
}
public void Create(Branch branch)
{
GetDbSet<Branch>().Add(branch);
unitOfWork.SaveChanges();
}
public void Delete(Branch branch)
{
GetDbSet<Branch>().Remove(branch);
unitOfWork.SaveChanges();
}
} public IQueryable<Branch> GetAlls()
{
return _branchRepository.GetAllwithCorporate();
}
public IQueryable<Branch> GetAllWithAll()
{
var CorporateID = _serverApplicationSettingRepository.GetAll().FirstOrDefault().CorporateID;
return _branchRepository.GetAllWithAll().Where(x => x.CorporateID == CorporateID);
} public IList<User> FindUsersContainName(string name, int count = 20)
از متدهای ریزتر استفاده کنید در لایه سرویس. GetAll فقط یکی از متدها است. مثلا متد تعریف کنید مثل امضای فوق که حد و مرز مشخص و کوچکی دارد مخصوص یک قسمت خاص از کار برنامه.
public class CityService : ICityService
{
private readonly IUnitOfWork _uow;
private readonly IDbSet<City> _city;
public CityService(IUnitOfWork uow)
{
_uow = uow;
_city = _uow.Set<City>();
}
public int AddCity(City city)
{
...
}
public int CitiesCount()
{
...
}
public City SearchByCityName(string cityName)
{
....
}
public void EditCity(City city)
{
...
}
public int RemoveCity(City city)
{
...
}
public City GetOneCity(int cityId)
{
return _city.Include(a => a.Province).Include(a => a.Province.Country).FirstOrDefault(a => a.CityId == cityId);
}
public IList<City> AllCities()
{
return _city.Include(a => a.Province).Include(a => a.Province.Country).ToList();
}
public IList<City> SearchByProvinceId(int provinceId)
{
return _city.Where(c => c.ProvinceId == provinceId).ToList();
}
public IList<City> GetCities(int startIndex, int pageSize, string sortexpression)
{
if (sortexpression == string.Empty)
{
sortexpression = "CityId ASC";
}
string sortColumnName = sortexpression.Split(' ')[0];
string sortDirection = sortexpression.Split(' ')[1];
var citiesQuery = _city.Include(a => a.Province).Include(a => a.Province.Country).AsQueryable();
switch (sortColumnName)
{
case "CityId":
citiesQuery = ((sortDirection.ToLower() == "asc") ? citiesQuery.OrderBy(a => a.CityId) : citiesQuery.OrderByDescending(a => a.CityId));
break;
case "CityName":
citiesQuery = ((sortDirection.ToLower() == "asc") ? citiesQuery.OrderBy(a => a.CityName) : citiesQuery.OrderByDescending(a => a.CityName));
break;
case "TelCode":
citiesQuery = ((sortDirection.ToLower() == "asc") ? citiesQuery.OrderBy(a => a.TelCode) : citiesQuery.OrderByDescending(a => a.TelCode));
break;
...
}
return citiesQuery.Skip(startIndex).Take(pageSize).ToList();
}
....و هر متد دیگری که نیاز دارید
}