コード例 #1
0
ファイル: SessionImpl.cs プロジェクト: eliemelki/CSharp-ORM
        public int Count <T>(SqlCriteria aCriteria, CachePreference aPreferences) where T : class, new()
        {
            int count = 0;
            var query = QueryFactory.CreateSelectQuery();

            query.SetStatement(
                s =>
            {
                s.AddField(Factory.GetExpressionHelper <T>().GetCountField <T>());
                s.AddFrom(Loader.GetClassMap <T>().GetTableName());
            });

            if (aCriteria == null)
            {
                aCriteria = Factory.CreateCriteria();
            }

            if (aPreferences == null)
            {
                aPreferences = new CachePreferenceImpl();
            }

            query.SetCriteria(aCriteria).SetCache(aPreferences);

            IntBinder binder = new IntBinder();

            binder.OnBind = delegate(IntResult aResult)
            {
                count = aResult.value;
            };
            Connetion.execute(query, binder);
            return(count);
        }
コード例 #2
0
ファイル: SessionImpl.cs プロジェクト: eliemelki/CSharp-ORM
        public int Update <T>(T aModel, SqlCriteria aCriteria, bool isNullBind) where T : class, new()
        {
            UpdateQuery <T> query  = QueryFactory.CreateUpdateQuery <T>(aModel, isNullBind).SetCriteria(aCriteria);
            int             result = 0;
            IntBinder       binder = new IntBinder();

            binder.OnBind =
                delegate(IntResult aResult)
            {
                result = aResult.value;
            };
            Connetion.execute <IntResult>(query, binder);
            return(result);
        }
コード例 #3
0
ファイル: SessionImpl.cs プロジェクト: eliemelki/CSharp-ORM
        public int Delete <T>(SqlCriteria aCriteria) where T : class, new()
        {
            DeleteQuery <T> query = QueryFactory.CreateDeleteQuery <T>();

            query.SetCriteria(aCriteria);
            int       result = 0;
            IntBinder binder = new IntBinder();

            binder.OnBind =
                delegate(IntResult aResult)
            {
                result = aResult.value;
            };
            Connetion.execute <IntResult>(query, binder);
            return(result);
        }