$NHibernate(ORM)_method_Add
by mtambulut
JavaScript
/**
Repository'e bir criteria ekleyelim ve bu criteria amacı şu sql işlemini yaptırmak olsun codeBehind tarfında;
SELECT DISTINCT C.CityCode, C.Name
FROM [dbo].[University] U
INNER JOIN City C ON C.CityCode = U.CityCode
WHERE U.IsActive = 1 // bu işlemi yaptıran codu yazmak gerek
ilk önce Dominos.OnlineOrder.Infrastucture \ Persistance \ UniversityRepository.cs
public IList<City> GetAllCities(){
ICriteria criteria = CreateCriteria();
var scheme = UniversityScheme.Scheme();
criteria.CreateAlias(scheme.City().ToString(), "c", NHibernate.SqlCommand.JoinType.InnerJoin);
criteria.Add(Restrictions.Eq(scheme.IsActive().ToString(), true));
var pList = Projections.ProjectionList();
pList.Add(Projections.Distinct(Projections.Property("c." + CityScheme.Properties.Id)), CityScheme.Properties.Id);
pList.Add(Projections.Property("c." + CityScheme.Properties.Name), CityScheme.Properties.Name);
criteria.SetProjection(pList);
criteria.SetResultTransformer(Transformers.AliasToBean<City>());
return criteria.List<City>();
}
Bunu yazdık Interface'e bu methodu tanıtıyoruz,
Dominos.OnlineOrder.Core \ Persistance \ IUniversityRepository.cs
IList<City> GetAllCities();
Dominos.OnlineOrder.Core \ UniversityStore \ UniversityService.cs'e yukarıda yazdığımız yere ulaştıracağız;
public IList<City> GetAllCities()
{
return _repository.GetAllCities();
}
Business kısmı burada bitiyor. Service kısmına bunları aktaracağız ;
Dominos.OnlineOrder.Services \ UniversityStore \ UniversityApiService.cs ' methodumuzu yazalım;
public IEnumerable<CityContract> GetAllCities()
{
ICacheService cacheService = CommonServiceLocator<ICacheService>.GetService("genericCacheService");
var cities =...