Esempio n. 1
0
        private void AppendCriteria <T>(SqlCriteria aCriteria, AppendCriteria aCriteriaAppender, PropertyMap aMap, T aData, bool isBindNull) where T : class, new()
        {
            object value = extractor.GetValue(aMap.Member.Name, aData);

            if (!isBindNull && value == null)
            {
                return;
            }
            aCriteriaAppender(aCriteria, aMap, value);
        }
Esempio n. 2
0
        public SqlCriteria GetCriteria <T>(T aData, AppendCriteria aCriteriaAppender, bool isBindNull, bool isIdIncludedIfExists) where T : class, new()
        {
            var criteria = factory.CreateCriteria();

            propertyBinder.BindProperty <T>(

                delegate(PropertyMap aMap)
            {
                AppendCriteria(criteria, aCriteriaAppender, aMap, aData, isBindNull);
            },
                delegate(IdentityMap aMap)
            {
                if (isIdIncludedIfExists)
                {
                    AppendCriteria(criteria, aCriteriaAppender, aMap, aData, isBindNull);
                }
            },
                delegate(PropertyMap aMap, MemberInfo[] aParentsMembers)
            {
                var field = extractor.GetValue(aData, aParentsMembers);
                AppendCriteria(criteria, aCriteriaAppender, aMap, field, isBindNull);
            });
            return(criteria);
        }