真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

EF6秘籍2th:實(shí)體數(shù)據(jù)建?;A(chǔ)(九)切分一個(gè)實(shí)體到多張表-創(chuàng)新互聯(lián)

問題:

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計(jì),文峰網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:文峰等地區(qū)。文峰做網(wǎng)站價(jià)格咨詢:18982081108

    有2個(gè)或更多的表共享相同的主鍵,現(xiàn)在需要使用單個(gè)實(shí)體映射這些表。

解決方案:

    數(shù)據(jù)庫圖表:

EF6 秘籍 2th:實(shí)體數(shù)據(jù)建?;A(chǔ) (九)切分一個(gè)實(shí)體到多張表

    使用代碼優(yōu)先的方式建模。

    1、添加ADO.NET實(shí)體數(shù)據(jù)模型,命名模型為EF6CodeFirstRecipesContext,選擇空代碼優(yōu)先模型。

    2、將生成的EF6CodeFirstRecipesContext類修改為EF6RecipesContext類。

    3、修改app.config中的連接字符串參數(shù)。

   4、添加POCO實(shí)體類Product。代碼如下:

    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    public class Product
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int SKU { get; set; }
        public string Description { get; set; }
        public decimal Price { get; set; }
        public string ImageURL { get; set; }
    }

    5、在EF6RecipesContext類中添加如下屬性:

public DbSet Products { get; set; }

    6、在重寫的OnModelCreating方法中添加如下代碼:

    modelBuilder.Entity()
                .Map(m =>
                {
                    m.Properties(p => new { p.SKU, p.Description, p.Price });
                    m.ToTable("Product", "Chapter2");
                })
                .Map(m =>
                {
                    m.Properties(p => new { p.SKU, p.ImageURL });
                    m.ToTable("ProductWebInfo", "Chapter2");
                });

    具體過程可參見上一節(jié)內(nèi)容。如果需要直接使用上一節(jié)內(nèi)容,目前我們還沒有使用Migration指令,則需要手動(dòng)將_Migration表刪除。

原理:

    從另外的表中獲取當(dāng)前表每一行的額外的信息這種情況在舊系統(tǒng)中很常見。特別是當(dāng)數(shù)據(jù)庫擴(kuò)展時(shí),沒有人喜歡在一些核心表中添加額外的列。這時(shí)候就可以通過另外的表來嫁接額外的信息。

    通過整合2個(gè)或多個(gè)表為單個(gè)實(shí)體類,更通俗的講,將單個(gè)實(shí)體類拆分成2個(gè)或多個(gè)表,這個(gè)過程通常稱為垂直拆分(vertical splitting)。

    垂直拆分的弊端是,每次我們需要獲取實(shí)體類的實(shí)例時(shí),都需要使用join連接用于從其他表中獲取信息。

        using (var context = new EF6RecipesContext())
            {
                var product = new Product
                {
                    SKU = 147,
                    Description = "Expandable Hydration Pack",
                    Price = 19.97M,
                    ImageURL = "/pack147.jpg"
                };
                context.Products.Add(product);

                product = new Product
                {
                    SKU = 178,
                    Description = "Rugged Ranger Duffel Bag",
                    Price = 39.97M,
                    ImageURL = "/pack178.jpg"
                };
                context.Products.Add(product);

                product = new Product
                {
                    SKU = 186,
                    Description = "Range Field Pack",
                    Price = 98.97M,
                    ImageURL = "/nop_w_picpath.jpg"
                };
                context.Products.Add(product);

                product = new Product
                {
                    SKU = 202,
                    Description = "Small Deployment Back Pack",
                    Price = 29.97M,
                    ImageURL = "/pack202.jpg"
                };
                context.Products.Add(product);

                context.SaveChanges();
            }

            using (var context = new EF6RecipesContext())
            {
                foreach (var p in context.Products)
                {
                    Console.WriteLine("{0} {1} {2} {3}", p.SKU, p.Description,
                        p.Price.ToString("C"), p.ImageURL);
                }
            }

執(zhí)行結(jié)果如下:

EF6 秘籍 2th:實(shí)體數(shù)據(jù)建模基礎(chǔ) (九)切分一個(gè)實(shí)體到多張表

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


網(wǎng)頁名稱:EF6秘籍2th:實(shí)體數(shù)據(jù)建模基礎(chǔ)(九)切分一個(gè)實(shí)體到多張表-創(chuàng)新互聯(lián)
文章來源:http://weahome.cn/article/dhjses.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部