示例#1
0
        /// <summary>
        /// Executes a T-SQL against the database
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public virtual bool Query(string query, int timeout = 0)
        {
            if (string.IsNullOrEmpty(query))
            {
                return(false);
            }

            using (ACTEntities context = new ACTEntities())
            {
                if (timeout > 0)
                {
                    context.Database.CommandTimeout = timeout;
                }

                context.Database.ExecuteSqlCommand(query);
            }

            return(true);
        }
示例#2
0
        /// <summary>
        /// Gets an entity using the specified id
        /// </summary>
        /// <param name="value">Id of the entity to be fetched</param>
        /// <returns></returns>
        public virtual T GetById(int id)
        {
            ParameterExpression itemParameter = Expression.Parameter(typeof(T), "item");
            var whereExpression = Expression.Lambda <Func <T, bool> >
                                  (
                Expression.Equal(Expression.Property(itemParameter, "Id"), Expression.Constant(id)),
                new[] { itemParameter }
                                  );

            context.Configuration.LazyLoadingEnabled   = true;
            context.Configuration.ProxyCreationEnabled = true;

            T item = context.Set <T>().Where(whereExpression).FirstOrDefault();

            using (ACTEntities db = new ACTEntities())
            {
                db.Configuration.LazyLoadingEnabled   = false;
                db.Configuration.ProxyCreationEnabled = false;

                OldObject = db.Set <T>().AsNoTracking().Where(whereExpression).FirstOrDefault();
            }

            return(item);
        }