中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

EF架構(gou)~單表一對多集(ji)合的插入(樹型(xing)結構(gou))

回到目錄

單(dan)表(biao)一(yi)對(dui)多(duo)關(guan)系(xi)很常(chang)見(jian),它是一(yi)種樹形結構,如系(xi)統(tong)菜單(dan)表(biao),部門表(biao),分類表(biao),這些(xie)都可以做成單(dan)表(biao)一(yi)對(dui)多(duo)關(guan)系(xi),而這些(xie)表(biao)做成一(yi)對(dui)多(duo)關(guan)系(xi)后,如果通過EntityFramework進行插(cha)入操作(zuo)時,會(hui)很方便,EF會(hui)自動為(wei)我們確實上級ID,對(dui)于操作(zuo)的性(xing)能(neng)也是可以接受的,與數(shu)據庫建(jian)立一(yi)次鏈接,發(fa)(fa)一(yi)批指定(ding),這是我們可以接受的,雖然在性(xing)能(neng)上不是最佳(jia)的,但綜(zong)合對(dui)比(bi)來看,它即是最佳(jia)的。(結合對(dui)比(bi)=程序性(xing)能(neng)+開發(fa)(fa)人員工時+程序擴展性(xing)+程序可讀性(xing))

OK,我們(men)以菜單表為(wei)例,說一下這個菜單表初始化(hua)的過(guo)程(cheng)

對于菜單實(shi)體(ti)的賦值(zhi),看(kan)一下代碼:

var menu = new WebManageMenus
                {
                    About = string.Empty,
                    LinkUrl = string.Empty,
                    MenuLevel = 0,
                    MenuName = form["MenuName"] ?? "",
                    Operator = string.Empty,
                    ParentID = null,
                    SortNumber = 1,
                    Status = Status.Normal.GetHashCode(),
                    UpdateDate = DateTime.Now,
                    WebManageMenus1 = new List<WebManageMenus>
                     {
                        new WebManageMenus
                        {
                            About = string.Empty,
                            LinkUrl = string.Empty,
                            MenuLevel = 1,
                            MenuName ="系統管理",
                            Operator = string.Empty,
                            SortNumber = 1,
                            Status = Status.Normal.GetHashCode(),
                            UpdateDate = DateTime.Now,
                            WebManageMenus1 = new List<WebManageMenus>
                             {
                                #region 二級菜單
                                new WebManageMenus
                                {
                                    About = string.Empty,
                                    LinkUrl = string.Empty,
                                    MenuLevel = 2,
                                    MenuName ="角色管理",
                                    Operator = string.Empty,
                                    SortNumber = 1,
                                    Status = Status.Normal.GetHashCode(),
                                    UpdateDate = DateTime.Now,
                                    WebManageMenus1 = new List<WebManageMenus>
                                    {
                                        new WebManageMenus
                                        {
                                            About = string.Empty,
                                            LinkUrl = "/Role/Create",
                                            MenuLevel = 3,
                                            MenuName ="新建(jian)角色",
                                            Operator = string.Empty,
                                            SortNumber = 1,
                                            Status = Status.Normal.GetHashCode(),
                                            UpdateDate = DateTime.Now
                                        },
                                        new WebManageMenus
                                        {
                                            About = string.Empty,
                                            LinkUrl = "/Role/Index",
                                            MenuLevel = 3,
                                            MenuName ="管理角色(se)",
                                            Operator = string.Empty,
                                            SortNumber = 1,
                                            Status = Status.Normal.GetHashCode(),
                                            UpdateDate = DateTime.Now
                                        }      
                                  }
                                }, 
                                #endregion
                                #region 二級菜單
                                new WebManageMenus
                                {
                                    About = string.Empty,
                                    LinkUrl = string.Empty,
                                    MenuLevel = 2,
                                    MenuName ="部門管(guan)理",
                                    Operator = string.Empty,
                                    SortNumber = 1,
                                    Status = Status.Normal.GetHashCode(),
                                    UpdateDate = DateTime.Now,
                                    WebManageMenus1 = new List<WebManageMenus>
                                    {
                                        new WebManageMenus
                                        {
                                            About = string.Empty,
                                            LinkUrl = "/Department/Index",
                                            MenuLevel = 3,
                                            MenuName ="管理部門",
                                            Operator = string.Empty,
                                            SortNumber = 1,
                                            Status = Status.Normal.GetHashCode(),
                                            UpdateDate = DateTime.Now
                                        }    
                                   }
                                }, 
                                #endregion
                                #region 二級菜單
                                new WebManageMenus
                                {
                                    About = string.Empty,
                                    LinkUrl = string.Empty,
                                    MenuLevel = 2,
                                    MenuName ="菜單管(guan)理",
                                    Operator = string.Empty,
                                    SortNumber = 1,
                                    Status = Status.Normal.GetHashCode(),
                                    UpdateDate = DateTime.Now,
                                    WebManageMenus1 = new List<WebManageMenus>
                                    {
                                        new WebManageMenus
                                        {
                                            About = string.Empty,
                                            LinkUrl = "/Menu/Index",
                                            MenuLevel = 3,
                                            MenuName ="管理菜單管理",
                                            Operator = string.Empty,
                                            SortNumber = 1,
                                            Status = Status.Normal.GetHashCode(),
                                            UpdateDate = DateTime.Now
                                        }    
                                   }
                                }, 
                                #endregion
                                #region 二級菜單
                                new WebManageMenus
                                {
                                    About = string.Empty,
                                    LinkUrl = string.Empty,
                                    MenuLevel = 2,
                                    MenuName ="員工管理",
                                    Operator = string.Empty,
                                    SortNumber = 1,
                                    Status = Status.Normal.GetHashCode(),
                                    UpdateDate = DateTime.Now,
                                    WebManageMenus1 = new List<WebManageMenus>
                                    {
                                        new WebManageMenus
                                        {
                                            About = string.Empty,
                                            LinkUrl = "/User/Create",
                                            MenuLevel = 3,
                                            MenuName ="新建員工(gong)",
                                            Operator = string.Empty,
                                            SortNumber = 1,
                                            Status = Status.Normal.GetHashCode(),
                                            UpdateDate = DateTime.Now
                                        },
                                        new WebManageMenus
                                        {
                                            About = string.Empty,
                                            LinkUrl = "/User/Index",
                                            MenuLevel = 3,
                                            MenuName ="管理員工",
                                            Operator = string.Empty,
                                            SortNumber = 1,
                                            Status = Status.Normal.GetHashCode(),
                                            UpdateDate = DateTime.Now
                                        }      
                                  }
                                }, 
                                #endregion
                             }
                       }
                   }
                };
                MenuRepository.Insert(menu);

我(wo)們可以看(kan)到,賦(fu)值的過程,我(wo)采用的EF生(sheng)成的實體標準,對于子對象的賦(fu)值,我(wo)們可以看(kan)到,parentID并沒(mei)有賦(fu)值,因為(wei)這時它還沒(mei)不存在,這個(ge)parentID為(wei)上級

菜(cai)單的(de)主鍵ID,所以EF在插入完父(fu)菜(cai)單后,會自(zi)動將ID賦值子對(dui)象的(de)ParentID,這個過程是系統幫我(wo)們(men)完成的(de)。

對于上面的過程,所生成的SQL語句也是我們可以接(jie)受的

感(gan)謝(xie)您(nin)的閱讀,感(gan)謝(xie)Entity Framework開發團隊!

回到目錄

posted @ 2013-04-02 11:03  張占嶺  閱讀(4845)  評論(1)    收藏  舉報