$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 =...