/// <summary>
 ///     Refreshes all pending Delete/Update entity objects of current DataContext according to the specified mode.
 ///     Nothing will do on Pending Insert entity objects.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="refreshMode">A value that specifies how optimistic concurrency conflicts are handled.</param>
 public void RefreshPendingChanges(DataContext context, RefreshMode refreshMode)
 {
     ChangeSet changeSet = context.GetChangeSet();
     if (changeSet != null)
     {
         context.Refresh(refreshMode, changeSet.Deletes);
         context.Refresh(refreshMode, changeSet.Updates);
     }
 }
        public bool Edit(GenericEntityType entity)
        {
            try
            {
                if (entity == null)
                {
                    _Logger.Error(typeof(GenericEntityType).Name + " is null to EDIT!");
                    return(false);
                }

                _DataContext.GetTable <GenericEntityType>().Attach(entity);
                // The foll stmt causes a refresh of the identity cache

                _DataContext.Refresh(RefreshMode.KeepCurrentValues, entity);


                // This stmt does an update on only the changed fields

                if (_Flag)
                {
                    _DataContext.SubmitChanges(ConflictMode.ContinueOnConflict);
                }

                return(true);
            }
            catch (ChangeConflictException e)
            {
                _Logger.Error(typeof(GenericEntityType).Name + " could not be EDITED...Confict occured -- " + e);
                return(false);
            }
        }
Example #3
0
    /// <summary>
    ///     Refreshes all pending Delete/Update entity objects of current DataContext according to the specified mode.
    ///     Nothing will do on Pending Insert entity objects.
    /// </summary>
    /// <param name="context"></param>
    /// <param name="refreshMode">A value that specifies how optimistic concurrency conflicts are handled.</param>
    public static void RefreshPendingChanges(this DataContext context, RefreshMode refreshMode)
    {
        ChangeSet changeSet = context.GetChangeSet();

        if (changeSet != null)
        {
            context.Refresh(refreshMode, changeSet.Deletes);
            context.Refresh(refreshMode, changeSet.Updates);
        }
    }
Example #4
0
        public bool UpdateGeneric <T>(List <T> entity) where T : class
        {
            _cntxt = new DataContext(_connStr);
            System.Data.Common.DbTransaction tran = null;

            try
            {
                if (_cntxt.Connection.State == System.Data.ConnectionState.Closed)
                {
                    _cntxt.Connection.Open();
                }

                tran = _cntxt.Connection.BeginTransaction();
                _cntxt.Transaction = tran;

                _cntxt.GetTable <T>().AttachAll <T>(entity);
                _cntxt.Refresh(RefreshMode.KeepCurrentValues, entity);
                _cntxt.SubmitChanges();

                tran.Commit();
                _cntxt.Connection.Close();
                return(true);
            }
            catch (Exception e)
            {
                tran.Rollback();
                _cntxt.Connection.Close();
                DBEvents.LogException(e, "UpdateGeneric<T>(List<T> entity)", 0);
                return(false);
            }
        }
Example #5
0
        virtual public string Update <T>(T bllTable) where T : class, IBaseTable
        {
            using (DataContext dc = new DataContext(connection))
            {
                bool isInsert = dc.GetTable <T>().Count(p => p.ID == bllTable.ID) == 0;
                if (isInsert)
                {
                    dc.GetTable <T>().InsertOnSubmit(bllTable);
                }
                else
                {
                    dc.GetTable <T>().Attach(bllTable, false);
                    dc.Refresh(RefreshMode.KeepCurrentValues, bllTable);
                }

                try
                {
                    dc.SubmitChanges();
                }
                catch (Exception e)
                {
                    return(e.Message);
                }

                return(string.Empty);
            }
        }
Example #6
0
        private void deleteActivityButton_Click(object sender, EventArgs e)
        {
            int aktivitaetId;
            DataGridViewSelectedRowCollection selectedRow;

            if (aktivitaetenDataGrid.SelectedRows.Count == 1 && aktivitaetenDataGrid.SelectedRows[0].Cells[0].Value != null)
            {
                selectedRow  = aktivitaetenDataGrid.SelectedRows;
                aktivitaetId = Int32.Parse(selectedRow[0].Cells[0].Value.ToString());
            }
            else
            {
                return;
            }
            //Connect auf Tabelle inkl. dem Mapping
            Table <Aktivitaet> my_inhalt = dbContext.GetTable <Aktivitaet>();

            //Abfrage
            var zu_loeschen =
                from aktivitaet in my_inhalt
                where aktivitaet.aktivitaetId == aktivitaetId
                select aktivitaet;

            //Delete on submit aufrufen -> ein element löschen
            Aktivitaet entity = zu_loeschen.First();

            dbContext.Refresh(System.Data.Linq.RefreshMode.KeepChanges, entity);
            my_inhalt.DeleteOnSubmit(entity);

            //Aenderung auf DB auslösen
            dbContext.SubmitChanges();

            // datagrid neu befüllen
            loadAktivitaetenDataGrid();
        }
Example #7
0
        /// <summary>
        /// Loads the Current Item
        /// </summary>
        private void LoadCurrentItem()
        {
            if (CurrentItem == null)
            {
                return;
            }

            examGridPanel.Visible = true;
            ValidateItem();

            //set selected on menu
            DataUri[] dataUris = new DataUri[1];
            dataUris[0] = new DataUri(CurrentItem.ID);
            TreeviewDataContext.DefaultItem = CurrentItem.ID.ToString();
            TreeviewDataContext.Folder      = CurrentItem.Paths.FullPath;
            TreeviewDataContext.Selected    = dataUris;
            TreeviewDataContext.AddSelected(new DataUri(CurrentItem.ID));
            TreeviewDataContext.Refresh();

            //reset form
            SetDisplay();

            //make sure we are on a velir image
            IFieldSuiteImage fieldSuiteImage = FieldSuiteImageFactory.GetFieldSuiteImage(CurrentItem);

            if (fieldSuiteImage != null)
            {
                CreateContentEditor(CurrentItem);
            }
        }
Example #8
0
 private void anulujButton_Click(object sender, EventArgs e)
 {
     if (kontrahent != null && kontrahent.EntityState == System.Data.EntityState.Modified)
     {
         DataContext.Refresh(System.Data.Objects.RefreshMode.StoreWins, kontrahent);
     }
 }
Example #9
0
 private void OnAddDiploma()
 {
     try
     {
         DataContext.Add_Diploma(
             sudent: AddDiplomaVisibleControl.New.Sudent_id
             ,
             teacher: AddDiplomaVisibleControl.New.Teacher_id
             ,
             date: AddDiplomaVisibleControl.New.date
             ,
             data: AddDiplomaVisibleControl.New.data
             ,
             documentation: AddDiplomaVisibleControl.New.documentation
             ,
             statement: AddDiplomaVisibleControl.New.statement
             ,
             annotation: AddDiplomaVisibleControl.New.annotation
             ,
             comment: AddDiplomaVisibleControl.New.comment
             );
         DataContext.Refresh(RefreshMode.OverwriteCurrentValues, DataContext.Diploms);
         ViewDiploms = new ObservableCollection <Diploms>(DataContext.Diploms.AsParallel());
         AddDiplomaVisibleControl.New = new Diploms();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Example #10
0
        public static void RollBack(this DataContext dataContext)
        {
            ChangeSet pendingChanges = dataContext.GetChangeSet();

            foreach (var insertion in pendingChanges.Inserts)
            {
                dataContext.GetTable(insertion.GetType()).InsertOnSubmit(insertion);
            }

            foreach (var deletion in pendingChanges.Deletes)
            {
                dataContext.GetTable(deletion.GetType()).DeleteOnSubmit(deletion);
            }

            foreach (var update in pendingChanges.Updates)
            {
                dataContext.Refresh(RefreshMode.OverwriteCurrentValues, update);

                IPropertyChangedNotifier updateNotify = update as IPropertyChangedNotifier;

                foreach (PropertyInfo propertyInfo in update.GetType().GetProperties())
                {
                    updateNotify.NotifyPropertyChanged(propertyInfo.Name);
                }
            }
        }
Example #11
0
        internal bool SaveFood(Food food)
        {
            using (DataContext)
            {
                try
                {
                    if (!DataContext.Foods.Contains(food))
                    {
                        food.CreatedDate = DateTime.Now;
                        food.IsTemporary = true;
                        DataContext.Foods.InsertOnSubmit(food);
                    }
                    else
                    {
                        food.IsTemporary = false;
                        DataContext.Foods.Attach(food);
                        DataContext.Refresh(RefreshMode.KeepCurrentValues, food);
                    }

                    food.ModifiedDate = DateTime.Now;
                    DataContext.SubmitChanges();
                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
Example #12
0
 /// <summary>
 /// 重写Update方法
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public override Entity.SYS_MenuList Update(Entity.SYS_MenuList entity)
 {
     using (DataContext cxt = ContextFactory.CreateContext())
     {
         try
         {
             Table <FineOffice.Entity.SYS_MenuList> authority = cxt.GetTable <FineOffice.Entity.SYS_MenuList>();
             authority.Attach(entity, true);
             if (entity.ParentID != 0)
             {
                 Entity.SYS_MenuList temp = authority.Where(d => d.ID == entity.ParentID).FirstOrDefault();
                 if (temp == null)
                 {
                     throw new Exception("父级菜单不存在!");
                 }
             }
             cxt.SubmitChanges(ConflictMode.ContinueOnConflict);
         }
         catch (ChangeConflictException)
         {
             cxt.Refresh(RefreshMode.KeepChanges, entity);
             cxt.SubmitChanges(ConflictMode.FailOnFirstConflict);
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message);
         }
         return(entity);
     }
 }
Example #13
0
 /// <summary>
 /// Saves this instance.
 /// </summary>
 public void Save(bool mergeChanges = false)
 {
     if (mergeChanges)
     {
         _dataContext.Refresh(RefreshMode.KeepChanges, GetTable.ToArray());
     }
     _dataContext.SubmitChanges();
 }
Example #14
0
        public void DeleteUserAsync_Test()
        {
            var user   = dataContext.Set <User>().FirstOrDefault();
            var userId = user.Id;

            _service.DeleteAsync(userId).GetAwaiter().GetResult();

            dataContext.Refresh(user);

            Assert.IsTrue(user.Deleted);
        }
Example #15
0
 public void RefreshRepositoryStatus()
 {
     try
     {
         DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, DataContext.TaskInstances);
         DataContext.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, DataContext.TaskSelections);
     }
     catch (Exception exception)
     {
         MessageObserver.Instance.SetMessage("Failed refresh entities { " + exception.ToString() + " }");
     }
 }
Example #16
0
        /// <summary>
        /// Load root item treepicker
        /// </summary>
        private void LoadRootItem()
        {
            Item goalsItem = Sitecore.Context.ContentDatabase.GetItem(AnalyticsReference.System_MarketingCenter_Goals.Guid);

            if (goalsItem == null || Sitecore.Context.ClientPage.IsPostBack)
            {
                return;
            }

            rootItemDataContext.Root = goalsItem.Paths.FullPath;
            rootItemDataContext.Refresh();
        }
Example #17
0
 protected void SaveChanges()
 {
     try
     {
         DataContext.SaveChanges();
     }
     catch (OptimisticConcurrencyException e)
     {
         // Resolve the concurrency conflict by refreshing the
         // object context before re-saving changes.
         DataContext.Refresh(RefreshMode.ClientWins, EntitySet);
         DataContext.SaveChanges();
     }
 } // End of function
Example #18
0
        /// <summary>
        /// Load Treepicker datacontext
        /// </summary>
        private void LoadDataContext()
        {
            if (SourceItem == null || Context.ClientPage.IsPostBack)
            {
                return;
            }

            DataUri[] dataUris = new DataUri[1];
            dataUris[0] = new DataUri(SourceItem.ID);

            addItemDataContext.Root        = SourceItem.Paths.FullPath;
            addItemDataContext.DefaultItem = SourceItem.ID.ToString();
            addItemDataContext.Folder      = SourceItem.Paths.FullPath;
            addItemDataContext.Selected    = dataUris;
            addItemDataContext.AddSelected(new DataUri(SourceItem.ID));
            addItemDataContext.Refresh();
        }
Example #19
0
        /// <summary>
        /// Update specific record
        /// </summary>
        /// <param name="record"> Record instance</param>
        public void Update(T record)
        {
            using (DataContext db = new DataContext(connectionString))
            {
                var results = db.GetTable <T>().Where(r => r.ID == record.ID);

                if (results.Any())
                {
                    // Иначе не хотело обновлять
                    var ctx = new DataContext(connectionString);

                    ctx.GetTable <T>().Attach(record);
                    ctx.Refresh(RefreshMode.KeepCurrentValues, record);
                    ctx.SubmitChanges();
                }
            }
        }
Example #20
0
        public bool UpdateGeneric <T>(T entity) where T : class
        {
            bool sonuc = false;

            _cntxt = new DataContext(_connStr);

            try
            {
                if (_cntxt.Connection.State == System.Data.ConnectionState.Closed)
                {
                    _cntxt.Connection.Open();
                }

                var Table = _cntxt.GetTable <T>();
                Table.Attach(entity);
                _cntxt.Refresh(RefreshMode.KeepCurrentValues, entity);
                _cntxt.SubmitChanges();
                sonuc = true;

                _cntxt.Connection.Close();
            }
            catch (Exception exp)
            {
                _cntxt.Connection.Close();
                try
                {
                    StackTrace stackTrace = new StackTrace();
                    MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();
                    LogException(exp, "UpdateGeneric<T>(T entity) in " + methodBase.ReflectedType.Name + "." + methodBase.Name, 0);
                }
                catch { }

                sonuc = false;
            }
            finally
            {
                if (_cntxt.Connection.State == System.Data.ConnectionState.Open)
                {
                    _cntxt.Connection.Close();
                }
            }
            return(sonuc);
        }
Example #21
0
        public bool UpdateGeneric <T>(T entity) where T : class
        {
            bool sonuc = false;

            _cntxt = new DataContext(_connStr);
            System.Data.Common.DbTransaction tran = null;

            try
            {
                if (_cntxt.Connection.State == System.Data.ConnectionState.Closed)
                {
                    _cntxt.Connection.Open();
                }


                tran = _cntxt.Connection.BeginTransaction();
                _cntxt.Transaction = tran;

                var Table = _cntxt.GetTable <T>();
                Table.Attach(entity);
                _cntxt.Refresh(RefreshMode.KeepCurrentValues, entity);
                _cntxt.SubmitChanges();
                sonuc = true;

                tran.Commit();
                _cntxt.Connection.Close();
            }
            catch (Exception exp)
            {
                tran.Rollback();
                _cntxt.Connection.Close();
                LogException(exp, "UpdateGeneric", -1);
                sonuc = false;
            }
            finally
            {
                if (_cntxt.Connection.State == System.Data.ConnectionState.Open)
                {
                    _cntxt.Connection.Close();
                }
            }
            return(sonuc);
        }
Example #22
0
 private void OnAddTeacher()
 {
     try
     {
         DataContext.Add_Teacher
         (
             addTeacherVisibleControl.New.Pioples.lastname
             ,
             addTeacherVisibleControl.New.Pioples.name
             ,
             addTeacherVisibleControl.New.Pioples.patronymic
         );
         DataContext.Refresh(RefreshMode.OverwriteCurrentValues, Teacher);
         Teacher = new ObservableCollection <Teacher>(DataContext.Teacher);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Example #23
0
 private void OnAddStudent()
 {
     try
     {
         DataContext.Add_Student
         (
             AddStudentVisibleControl.New.Pioples.lastname
             ,
             AddStudentVisibleControl.New.Pioples.name
             ,
             AddStudentVisibleControl.New.Pioples.patronymic
             ,
             AddStudentVisibleControl.New.Group_id
         );
         DataContext.Refresh(RefreshMode.OverwriteCurrentValues, DataContext.Student);
         Students = new ObservableCollection <Student>(DataContext.Student.AsParallel());
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
 /// <summary>
 /// 重写Update方法
 /// </summary>
 public override Entity.SYS_PageAuthority Update(Entity.SYS_PageAuthority entity)
 {
     using (DataContext cxt = ContextFactory.CreateContext())
     {
         try
         {
             Table <FineOffice.Entity.SYS_PageAuthority> authority = cxt.GetTable <FineOffice.Entity.SYS_PageAuthority>();
             authority.Attach(entity, true);
             cxt.SubmitChanges(ConflictMode.ContinueOnConflict);
         }
         catch (ChangeConflictException)
         {
             cxt.Refresh(RefreshMode.KeepChanges, entity);
             cxt.SubmitChanges(ConflictMode.FailOnFirstConflict);
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message);
         }
         return(entity);
     }
 }
Example #25
0
        public virtual bool UndoChanges()
        {
            UndoChangesOnClose = false;
            if (!IsReadOnly && DataSource != null)
            {
                if (DataSource is Enova.Business.Old.Core.IContextUndoChanges)
                {
                    return(((Enova.Business.Old.Core.IContextUndoChanges)DataSource).UndoChanges(DataContext));
                }
                else if (DataSource is Enova.Business.Old.Core.IUndoChanges)
                {
                    return(((Enova.Business.Old.Core.IUndoChanges)DataSource).UndoChanges());
                }
                else if (DataContext != null && DataSource.GetType().IsAssignableFrom(typeof(System.Data.Objects.DataClasses.EntityObject)))
                {
                    DataContext.Refresh(System.Data.Objects.RefreshMode.StoreWins, DataSource);
                    return(true);
                }
            }

            return(false);
        }
Example #26
0
        public bool UpdateGeneric <T>(List <T> entity) where T : class
        {
            _cntxt = new DataContext(_connStr);
            System.Data.Common.DbTransaction tran = null;

            try
            {
                if (_cntxt.Connection.State == System.Data.ConnectionState.Closed)
                {
                    _cntxt.Connection.Open();
                }

                tran = _cntxt.Connection.BeginTransaction();
                _cntxt.Transaction = tran;

                _cntxt.GetTable <T>().AttachAll <T>(entity);
                _cntxt.Refresh(RefreshMode.KeepCurrentValues, entity);
                _cntxt.SubmitChanges();

                tran.Commit();
                _cntxt.Connection.Close();
                return(true);
            }
            catch (Exception e)
            {
                tran.Rollback();
                _cntxt.Connection.Close();
                try
                {
                    StackTrace stackTrace = new StackTrace();
                    MethodBase methodBase = stackTrace.GetFrame(1).GetMethod();
                    LogException(e, "UpdateGeneric<T>(List<T> entity) in " + methodBase.ReflectedType.Name + "." + methodBase.Name, 0);
                }
                catch { }

                return(false);
            }
        }
Example #27
0
        /// <summary>
        /// Intializes the complete button.
        /// </summary>
        public void IntializeCompleteButton()
        {
            bool canComplete            = false;
            bool canEditIteminItemBrief = this.GetBL <InventoryBL>().CanEditIteminItemBrief(ItemBriefId, out canComplete);

            btnVerifyBeforeComplete.Enabled = !IsItemBriefReadOnly;

            Data.ItemBrief itemBrief = GetItemBrief(this.ItemBriefId);

            btnCompleteItem.Enabled = !IsItemBriefReadOnly;

            DataContext.Refresh(RefreshMode.StoreWins, itemBrief);

            bool isItemBriefCompleted = (itemBrief != null && itemBrief.ItemBriefStatusCodeId == Support.GetCodeIdByCodeValue("ItemBriefStatusCode", "COMPLETED"));

            btnCompleteItem.Visible = (!isItemBriefCompleted && (canEditIteminItemBrief || canComplete));
            if (!canEditIteminItemBrief && canComplete)
            {
                btnCompleteItem.Text = "Complete";
            }

            UpdateUpdatePanels();
        }
Example #28
0
        private void RozrachunekEditForm_Load(object sender, EventArgs e)
        {
            terminComboBox.SelectedIndex          = 0;
            terminGranicznyComboBox.SelectedIndex = 0;
            okresRozliczen.SetSpan(Enova.Business.Old.Controls.DateTimeSpanControl.SpanType.Year);

            if ((Enova.Business.Old.DB.Web.Operator.CurrentOperator.PrawaDostepu & AbakTools.Business.OperatorPrawaDostepu.Administrator) != Business.OperatorPrawaDostepu.Administrator)
            {
                blokadaCheckBox.Enabled     = false;
                blokadaSprzCheckBox.Enabled = false;
            }
            else
            {
                blokadaCheckBox.Enabled     = true;
                blokadaSprzCheckBox.Enabled = true;
            }

            if (DataSource != null)
            {
                if (DataSource.IDKontrahenta != null)
                {
                    kontrahent = DataContext.Kontrahenci.Where(k => k.ID == DataSource.IDKontrahenta).FirstOrDefault();
                    if (kontrahent != null)
                    {
                        DataContext.Refresh(RefreshMode.StoreWins, kontrahent);
                        blokadaSprzCheckBox.Refresh();
                        if (kontrahent.Windykacja != null)
                        {
                        }
                        kontrahentBindingSource.DataSource  = kontrahent;
                        adresBindingSource.DataSource       = kontrahent.Adres;
                        adresKorespBindingSource.DataSource = kontrahent.AdresKorespondencyjny;
                        loadRozrachunki();
                    }
                }
            }
        }
        /// <summary>
        /// 快取 LINQ Query 的結果(僅適用於 LINQ to SQL 環境)
        /// 使用的的限制跟使用 SqlCacheDependency 的限制一樣
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="q"></param>
        /// <param name="dc">你的 LINQ to SQL DataContext</param>
        /// <param name="CacheId">Cache ID,需為每一個不同的 IQueryable 物件設定一個唯一的 ID</param>
        /// <returns></returns>
        public static List <T> LinqCache <T>(this IQueryable <T> q, DataContext dc, string CacheId)
        {
            List <T> objCache = (List <T>)System.Web.HttpRuntime.Cache.Get(CacheId);

            if (objCache == null)
            {
                #region 从数据库查找

                ///////// 尚未快取,實做 new SqlCacheDependeny //////////

                // 1. 透過 DataContext 取得連線字串
                string connStr = dc.Connection.ConnectionString;

                // 2. 透過 DataContext 與 IQueryable 物件取得 SqlCommand 物件
                SqlCommand sqlCmd = dc.GetCommand(q) as SqlCommand;

                // 3. 建立要給 SqlCacheDependency 使用的 SqlConnection 物件
                using (SqlConnection conn = new SqlConnection(connStr))
                {
                    conn.Open();

                    // 4. 建立要給 SqlCacheDependency 使用的 SqlCommand 物件
                    using (SqlCommand cmd = new SqlCommand(sqlCmd.CommandText, conn))
                    {
                        // 5.0 將 sqlCmd 中的所有參數傳遞給 cmd 物件
                        foreach (System.Data.Common.DbParameter dbp in sqlCmd.Parameters)
                        {
                            cmd.Parameters.Add(new SqlParameter(dbp.ParameterName, dbp.Value));
                        }

                        // 5.1 啟用資料庫的 Query notifications 功能
                        SqlCacheDependencyAdmin.EnableNotifications(connStr);

                        // 5.2 取得要進行異動通知的表格名稱(ElementType)
                        string NotificationTable = q.ElementType.Name;

                        // 5.3 將取得的 NotificationTable 啟用通知功能
                        if (!SqlCacheDependencyAdmin.GetTablesEnabledForNotifications(connStr).Contains(NotificationTable))
                        {
                            SqlCacheDependencyAdmin.EnableTableForNotifications(connStr, NotificationTable);
                        }

                        // 6. 建立 SqlCacheDependency物件
                        SqlCacheDependency sqlDep = new SqlCacheDependency(cmd);

                        // 7. 刷新 LINQ to SQL 的值(取得資料庫中的最新資料)
                        dc.Refresh(RefreshMode.OverwriteCurrentValues, q);

                        // 8. 執行 SqlCacheDepency 查詢
                        cmd.ExecuteNonQuery();

                        // 9. 執行 LINQ to SQL 的查詢,並將結果轉成 List<T> 型別,避免延遲查詢(Delayed Query)立即將資料取回
                        objCache = q.ToList();

                        //10. 將結果插入到 System.Web.HttpRuntime.Cache 物件中,並且指定 SqlCacheDependency 物件
                        System.Web.HttpRuntime.Cache.Insert(CacheId, objCache, sqlDep);
                    }
                }
                #endregion
            }

            // 回傳查詢結果(或快取的結果)
            return(objCache);
        }
Example #30
0
        protected virtual void LoadData()
        {
            if (BaseQuery != null)
            {
                ObjectQuery <TEntity> query;

                if (sortLocal || filterLocal)
                {
                    if (list == null)
                    {
                        if (filterLocal)
                        {
                            query = BaseQuery;
                            //list = PostLoadProcess(BaseQuery.ToList());
                        }
                        else
                        {
                            if (filterInfo != null && !string.IsNullOrEmpty(filterInfo.Filter))
                            {
                                query = BaseQuery.Where(filterInfo.Filter, new ObjectParameter[] { });
                                //list = PostLoadProcess(BaseQuery.Where(filterInfo.Filter, new ObjectParameter[] { }).ToList());
                            }
                            else
                            {
                                query = BaseQuery;
                                //list = PostLoadProcess(BaseQuery.ToList());
                            }
                        }
                        query.MergeOption = this.mergeOption;
                        if (refreshContext && DataContext != null)
                        {
                            DataContext.Refresh(RefreshMode.StoreWins, query);
                        }
                        list = PostLoadProcess(query.ToList());
                    }

                    if (FilterLocal && filterInfo != null && !string.IsNullOrEmpty(filterInfo.Filter))
                    {
                        rows = PostLoadProcess(list.AsQueryable().Where((Expression <Func <TEntity, bool> >)filterInfo.Expression).ToList());
                    }
                    else
                    {
                        rows = PostLoadProcess(list);
                    }

                    if (isSorted)
                    {
                        if (sortDirection == ListSortDirection.Ascending)
                        {
                            rows = PostLoadProcess(rows.OrderBy((Func <TEntity, object>)keySelector).ToList());
                        }
                        else
                        {
                            rows = PostLoadProcess(rows.OrderByDescending((Func <TEntity, object>)keySelector).ToList());
                        }
                    }
                }
                else
                {
                    if (filterInfo == null || string.IsNullOrEmpty(filterInfo.Filter))
                    {
                        query = BaseQuery;
                    }
                    else
                    {
                        query = BaseQuery.Where(filterInfo.Filter, new ObjectParameter[] { });
                    }

                    query.MergeOption = this.mergeOption;

                    /*
                     * if (refreshContext && DataContext != null)
                     *  DataContext.Refresh(RefreshMode.StoreWins, query);
                     */

                    if (isSorted)
                    {
                        /*
                         * if (sortDirection == ListSortDirection.Ascending)
                         * {
                         *  rows = PostLoadProcess(query.OrderBy((Func<TEntity, object>)keySelector).ToList());
                         * }
                         * else
                         * {
                         *  rows = PostLoadProcess(query.OrderByDescending((Func<TEntity, object>)keySelector).ToList());
                         * }
                         */
                        rows = PostLoadProcess(GetSortedRows(query).ToList());
                    }
                    else
                    {
                        rows = this.PostLoadProcess(query.ToList());
                    }
                }

                /*
                 * if (refreshContext && dataContext != null)
                 *  dataContext.Refresh(RefreshMode.StoreWins, rows);
                 */
            }
            else
            {
                this.rows = GetRows();
            }
            if (this.sortComparer != null)
            {
                this.Sort(this.sortComparer);
                this.sortComparer = null;
            }
            this.OnDataLoaded(new EventArgs());
        }
 public void Refresh(DataContext dataContext, RefreshMode mode, object entity) {
     dataContext.Refresh(mode, entity);
 }
Example #32
0
        public DataTable GetData(DataTable dataGridViewMain)
        {
            DataTable dtTable = new DataTable();

            if (Authorization.Login == "root")
            {
                /// Группировка по Филиалу (находим последнюю запись) сортируем по дате
                var maxDate = from table in dc.GetTable <Orders_incomplete>()
                              group table by table.Филиал into g
                              select g.OrderByDescending(t => t.Дата_записи).FirstOrDefault();

                dtTable = ToDataTable(maxDate);
                dc.Refresh(RefreshMode.OverwriteCurrentValues, maxDate);       /// datacontext очистка

                var lastDays = from table in dc.GetTable <Orders_incomplete>() /// последние записи по Дате
                               where table.Дата_записи >= Convert.ToDateTime(dtTable.Rows[0][12])
                               orderby table.Дата_записи descending
                               select table;
                dtTable.Clear();
                dtTable = ToDataTable(lastDays);
                dc.Refresh(RefreshMode.OverwriteCurrentValues, lastDays); /// datacontext очистка
                return(dtTable);
            }
            else if (dataGridViewMain.Rows.Count == 0)
            {
                /// Группировка по Филиалу (находим последнюю запись) сортируем по дате
                var maxDate = from table in dc.GetTable <Orders_incomplete>()
                              group table by table.Филиал into g
                              select g.OrderByDescending(t => t.Дата_записи).FirstOrDefault();

                dtTable = ToDataTable(maxDate);
                dc.Refresh(RefreshMode.OverwriteCurrentValues, maxDate);       /// datacontext очистка

                var lastDays = from table in dc.GetTable <Orders_incomplete>() /// последние записи по Дате
                               where table.Дата_записи >= Convert.ToDateTime(dtTable.Rows[0][12])
                               where table.Филиал == Authorization.Login
                               orderby table.Дата_записи descending
                               select table;
                dtTable.Clear();
                dtTable = ToDataTable(lastDays);
                dc.Refresh(RefreshMode.OverwriteCurrentValues, lastDays); /// datacontext очистка command
                return(dtTable);
            }
            else
            {
                var sevenDays = from table in dc.GetTable <Orders_incomplete>()
                                where table.Дата_записи >= DateTime.Now.AddDays(-7)
                                where table.Филиал == Authorization.Login
                                orderby table.Дата_записи descending
                                select table;
                dtTable = ToDataTable(sevenDays);
                dc.Refresh(RefreshMode.OverwriteCurrentValues, sevenDays); /// datacontext очистка
                return(dtTable);
            }
        }