public virtual CustomerSession InsertCustomerSession(CustomerSession entity)
        {
            CustomerSession other = new CustomerSession();

            other = entity;
            if (entity.IsTransient())
            {
                string         sql            = @"Insert into CustomerSession ( [CustomerID]
				,[SessionName]
				,[SessionValue]
				,[ipaddr]
				,[LastActivity]
				,[LoggedOut]
				,[CustomerSessionGUID]
				,[CreatedOn]
				,[ExpiresOn] )
				Values
				( @CustomerID
				, @SessionName
				, @SessionValue
				, @ipaddr
				, @LastActivity
				, @LoggedOut
				, @CustomerSessionGUID
				, @CreatedOn
				, @ExpiresOn );
				Select scope_identity()"                ;
                SqlParameter[] parameterArray = new SqlParameter[] {
                    new SqlParameter("@CustomerSessionID", entity.CustomerSessionId)
                    , new SqlParameter("@CustomerID", entity.CustomerId)
                    , new SqlParameter("@SessionName", entity.SessionName)
                    , new SqlParameter("@SessionValue", entity.SessionValue ?? (object)DBNull.Value)
                    , new SqlParameter("@ipaddr", entity.Ipaddr ?? (object)DBNull.Value)
                    , new SqlParameter("@LastActivity", entity.LastActivity)
                    , new SqlParameter("@LoggedOut", entity.LoggedOut ?? (object)DBNull.Value)
                    , new SqlParameter("@CustomerSessionGUID", entity.CustomerSessionGuid)
                    , new SqlParameter("@CreatedOn", entity.CreatedOn)
                    , new SqlParameter("@ExpiresOn", entity.ExpiresOn)
                };
                var identity = SqlHelper.ExecuteScalar(this.ConnectionString, CommandType.Text, sql, parameterArray);
                if (identity == DBNull.Value)
                {
                    throw new DataException("Identity column was null as a result of the insert operation.");
                }
                return(GetCustomerSession(Convert.ToInt32(identity)));
            }
            return(entity);
        }
        public virtual CustomerSession UpdateCustomerSession(CustomerSession entity)
        {
            if (entity.IsTransient())
            {
                return(entity);
            }
            CustomerSession other = GetCustomerSession(entity.CustomerSessionId);

            if (entity.Equals(other))
            {
                return(entity);
            }
            string sql = @"Update CustomerSession set  [CustomerID]=@CustomerID
							, [SessionName]=@SessionName
							, [SessionValue]=@SessionValue
							, [ipaddr]=@ipaddr
							, [LastActivity]=@LastActivity
							, [LoggedOut]=@LoggedOut
							, [CustomerSessionGUID]=@CustomerSessionGUID
							, [CreatedOn]=@CreatedOn
							, [ExpiresOn]=@ExpiresOn 
							 where CustomerSessionID=@CustomerSessionID"                            ;

            SqlParameter[] parameterArray = new SqlParameter[] {
                new SqlParameter("@CustomerSessionID", entity.CustomerSessionId)
                , new SqlParameter("@CustomerID", entity.CustomerId)
                , new SqlParameter("@SessionName", entity.SessionName)
                , new SqlParameter("@SessionValue", entity.SessionValue ?? (object)DBNull.Value)
                , new SqlParameter("@ipaddr", entity.Ipaddr ?? (object)DBNull.Value)
                , new SqlParameter("@LastActivity", entity.LastActivity)
                , new SqlParameter("@LoggedOut", entity.LoggedOut ?? (object)DBNull.Value)
                , new SqlParameter("@CustomerSessionGUID", entity.CustomerSessionGuid)
                , new SqlParameter("@CreatedOn", entity.CreatedOn)
                , new SqlParameter("@ExpiresOn", entity.ExpiresOn)
            };
            SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.Text, sql, parameterArray);
            return(GetCustomerSession(entity.CustomerSessionId));
        }