EF4.1系列(一)

1.EF定義了一下幾種State(狀態)【注意這是枚舉類型】

如圖所示:

Detached:對象存在,但沒有被跟蹤。 在創建實體之後、但將其添加到對象上下文之前,該實體處於此狀態。

Unchanged:對象存在,經過SaveChanges()方法以後依舊沒有發生改變。

Added:對象本身不存在,此時添加當前對象。

Deleted:通過SaveChanges()方法以後狀態變爲Detached表示對象已經刪除。

Modified:對象中某個屬性發生改變,此時狀態爲EntityState.Modified保存以後狀態變爲Unchanged。

 

 

 public virtual bool Insert(T Entity)
        {
            using (Xjn_InformationEntities Info = new Xjn_InformationEntities())
            {
                var obj = Info.Set<T>();
                //進行添加對象操作前對象狀態應爲Detached 
                obj.Add(Entity);
                //此時EntityState應爲 Added
                return Info.SaveChanges() > 0;
            }
        }
public virtual bool Update(T Entity)
        {
            using (Xjn_InformationEntities Info = new Xjn_InformationEntities())
            {
                var obj = Info.Set<T>();
                obj.Attach(Entity);
                Info.Entry(Entity).State = EntityState.Modified;
                //將狀態改爲Modified,保存成功後狀態Unchanged
                return Info.SaveChanges() > 0;
            }
        }
public virtual bool Delete(T Entity)
        {
            using (Xjn_InformationEntities Info = new Xjn_InformationEntities())
            {
                var obj = Info.Set<T>();
                if (Entity != null)
                {
                    obj.Attach(Entity);
                    Info.Set<T>().Remove(Entity);
                    //在Remove方法之後狀態變爲Deleted
                    return Info.SaveChanges() > 0;
                }
                else
                    return false;

            }


發佈了40 篇原創文章 · 獲贊 5 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章