1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢(xún)
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
      EF6秘籍2th:實(shí)體數(shù)據(jù)建模基礎(chǔ)(七)建模有標(biāo)量屬性的多對(duì)多關(guān)系-創(chuàng)新互聯(lián)

      問(wèn)題:

      10年積累的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先做網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有望奎免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

          在數(shù)據(jù)庫(kù)的鏈接表中除了原有的外鍵列之外,還有其他的數(shù)據(jù)列。現(xiàn)在想把鏈接表及其關(guān)聯(lián)表導(dǎo)入到EDM中,以形成一個(gè)多對(duì)多關(guān)系或2個(gè)一對(duì)多關(guān)系。

      解決方案:

          EF不支持帶有屬性的關(guān)聯(lián)。如果鏈接表包含有除了外鍵之外的其他列,EF將產(chǎn)生一個(gè)單獨(dú)的實(shí)體類(lèi)型以表示這個(gè)鏈接表。最終的模型將包含一個(gè)鏈接表實(shí)體類(lèi)型和2個(gè)一對(duì)多的關(guān)聯(lián)。

          數(shù)據(jù)庫(kù)圖表如下:

      EF6 秘籍 2th:實(shí)體數(shù)據(jù)建模基礎(chǔ) (七)建模有標(biāo)量屬性的多對(duì)多關(guān)系

      數(shù)據(jù)庫(kù)腳本如下:

      use [EF6Recipes]
      go
      
      create table Chapter2.Item(
      SKU int primary key,
      [Description] varchar(50) not null,
      Price decimal(18,2) not null);
      
      create table Chapter2.[Order](
      OrderId int identity primary key,
      OrderDate datetime not null);
      
      create table Chapter2.OrderItem(
      OrderId int foreign key references Chapter2.[Order](OrderId),
      SKU int foreign key references Chapter2.Item(SKU),
      [Count] int not null,
      constraint PK_OrderItem primary key (OrderId,SKU));

          一個(gè)訂單(Order)能有多個(gè)項(xiàng)(Item),一個(gè)項(xiàng)也能包含在多個(gè)訂單里。另外,還有一個(gè)Count屬性關(guān)聯(lián)到每個(gè)訂單與項(xiàng)的實(shí)例。這個(gè)Count屬性就被稱(chēng)為負(fù)載(Payload)。

          操作步驟同EF6 秘籍 2th:實(shí)體數(shù)據(jù)建模基礎(chǔ) (五)從現(xiàn)有數(shù)據(jù)庫(kù)生成模型一致,不再重復(fù)。

          生成的EDM如下圖:

      EF6 秘籍 2th:實(shí)體數(shù)據(jù)建模基礎(chǔ) (七)建模有標(biāo)量屬性的多對(duì)多關(guān)系

      原理:

          EF不支持帶有其他屬性列的關(guān)聯(lián)。它將轉(zhuǎn)換這個(gè)鏈接表為一個(gè)包含2個(gè)一對(duì)多關(guān)聯(lián)的實(shí)體。在這種情況下,OrderItem表沒(méi)有被轉(zhuǎn)換成一個(gè)關(guān)聯(lián),而是轉(zhuǎn)換為一個(gè)1對(duì)多關(guān)聯(lián)到Order和一個(gè)1對(duì)多關(guān)聯(lián)到Item的實(shí)體類(lèi)型。

          額外屬性列的增加需要關(guān)聯(lián)表的實(shí)體提供一個(gè)額外的跳板以獲取相關(guān)的項(xiàng)。

                  using (var context = new EF6RecipesContext())
                  {
                      var oiList = new List();
                      var order1 = new Order { OrderDate = new DateTime(2010, 1, 18) };
                      var order2 = new Order { OrderDate = new DateTime(2010, 1, 19) };
                      var item1 = new Item { SKU = 1729, Description = "Backpack", Price = 29.97M };
                      var item2 = new Item { SKU = 2929, Description = "Water Filter", Price = 13.97M };
                      var item3 = new Item { SKU = 1847, Description = "Camp Stove", Price = 43.99M };
      
                      oiList.Add(new OrderItem { Order = order1, Item = item1, Count = 1 });
                      oiList.Add(new OrderItem { Order = order1, Item = item2, Count = 3 });
                      oiList.Add(new OrderItem { Order = order1, Item = item3, Count = 1 });
                      oiList.Add(new OrderItem { Order = order2, Item = item1, Count = 2 });
                      oiList.Add(new OrderItem { Order = order2, Item = item2, Count = 2 });
                      oiList.Add(new OrderItem { Order = order2, Item = item3, Count = 2 });
      
                      context.OrderItems.AddRange(oiList);
                      context.SaveChanges();       
                  }
      
                  using (var context = new EF6RecipesContext())
                  {
                      foreach (var order in context.Orders)
                      {
                          Console.WriteLine("Order # {0}, orderd on {1}",
                              order.OrderId,
                              order.OrderDate.ToShortDateString());
                          Console.WriteLine("SKU\tDescription\tQty\tPrice");
                          Console.WriteLine("---\t-----------\t---\t-----");
                          foreach (var oi in order.OrderItems)
                          {
                              Console.WriteLine("{0}\t{1}\t{2}\t{3}",
                                  oi.SKU, oi.Item.Description, oi.Count, oi.Item.Price);
                          }
                      }                
                  }

      運(yùn)行結(jié)果如下:

      EF6 秘籍 2th:實(shí)體數(shù)據(jù)建模基礎(chǔ) (七)建模有標(biāo)量屬性的多對(duì)多關(guān)系

      該代碼與原文提供的程序不一樣,原文提供的代碼我執(zhí)行的時(shí)候只插入了Order的數(shù)據(jù),附原文代碼:

      var order = new Order { OrderId = 1,
      OrderDate = new DateTime(2010, 1, 18) };
      var item = new Item { SKU = 1729, Description = "Backpack",
      Price = 29.97M };
      var oi = new OrderItem { Order = order, Item = item, Count = 1 };
      item = new Item { SKU = 2929, Description = "Water Filter",
      Price = 13.97M };
      oi = new OrderItem { Order = order, Item = item, Count = 3 };
      item = new Item { SKU = 1847, Description = "Camp Stove",
      Price = 43.99M };
      oi = new OrderItem { Order = order, Item = item, Count = 1 };
      context.Orders.Add(order);
      context.SaveChanges();

      最佳實(shí)踐:

          由于鏈接表有負(fù)載和沒(méi)有負(fù)載,生成的模型完全不同。這就需要我們?cè)谠O(shè)計(jì)之初就需要分析鏈接表會(huì)不會(huì)有其他列的可能,如果不能確定,使用一個(gè)自增列。這樣的話就會(huì)生成一個(gè)包含2個(gè)1對(duì)多關(guān)系的實(shí)體類(lèi)型。在以后進(jìn)行其他屬性列擴(kuò)展時(shí),對(duì)模型的影響最小。

      另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


      網(wǎng)站欄目:EF6秘籍2th:實(shí)體數(shù)據(jù)建模基礎(chǔ)(七)建模有標(biāo)量屬性的多對(duì)多關(guān)系-創(chuàng)新互聯(lián)
      路徑分享:http://www.ef60e0e.cn/article/dgcgie.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        丹东市| 保康县| 监利县| 达尔| 册亨县| 建瓯市| 廊坊市| 绵阳市| 陆川县| 濮阳市| 岱山县| 浮山县| 临泉县| 沙坪坝区| 毕节市| 敦煌市| 出国| 漳浦县| 莎车县| 莱阳市| 邵阳县| 镇巴县| 静安区| 邢台市| 山阳县| 华阴市| 若尔盖县| 丰顺县| 潞城市| 安国市| 卢氏县| 应城市| 油尖旺区| 始兴县| 华蓥市| 平安县| 桑日县| 长宁县| 汪清县| 厦门市| 准格尔旗|