欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Entity?Framework使用配置伙伴創(chuàng)建數(shù)據(jù)庫(kù)

 更新時(shí)間:2022年03月03日 11:44:26   作者:.NET開(kāi)發(fā)菜鳥(niǎo)  
這篇文章介紹了Entity?Framework使用配置伙伴創(chuàng)建數(shù)據(jù)庫(kù)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

上一篇文章中講了如何使用fluent API來(lái)創(chuàng)建數(shù)據(jù)表,不知道你有沒(méi)有注意到一個(gè)問(wèn)題。上面的OnModelCreating方法中,我們只配置了一個(gè)類Product,也許代碼不是很多,但也不算很少,如果我們有1000個(gè)類怎么辦?都寫(xiě)在這一個(gè)方法中肯定不好維護(hù)。EF提供了另一種方式來(lái)解決這個(gè)問(wèn)題,那就是為每個(gè)實(shí)體類單獨(dú)創(chuàng)建一個(gè)配置類。然后在OnModelCreating方法中調(diào)用這些配置伙伴類。

創(chuàng)建Product實(shí)體類:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity.ModelConfiguration;

namespace EF配置伙伴.Model
{
    public class Product
    {
        public int ProductNo { get; set; }

        public string ProductName { get; set; }

        public double ProductPrice { get; set; }
    }
}

創(chuàng)建Product實(shí)體類的配置類:ProductMap,配置類需要繼承自EntityTypeConfiguration泛型類,EntityTypeConfiguration位于System.Data.Entity.ModelConfiguration命名空間下,ProductMap類如下:

using EF配置伙伴.Model;
using System;
using System.Collections.Generic;
using System.Data.Entity.ModelConfiguration;
using System.Linq;
using System.Text;

namespace EF配置伙伴.EDM
{
    public class ProductMap   :EntityTypeConfiguration<Product>
    {
        public ProductMap()
        {
            // 設(shè)置生成的表名稱
            ToTable("ProductConfiguration");
            // 設(shè)置生成表的主鍵
            this.HasKey(p => p.ProductNo);
            // 修改生成的列名
            this.Property(p =>p.ProductNo).HasColumnName("Id");
            this.Property(p => p.ProductName)
                .IsRequired()  // 設(shè)置 ProductName列是必須的
                .HasColumnName("Name"); // 將ProductName映射到數(shù)據(jù)表的Name列

        }
    }
}

在數(shù)據(jù)上下文Context類的OnModelCreating()方法中調(diào)用:

using EF配置伙伴.EDM;
using EF配置伙伴.Model;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;

namespace EF配置伙伴.EFContext
{
    public class Context:DbContext
    {
        public Context()
            : base("DbConnection")
        { }

        public DbSet<Product> Products { get; set; }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            // 添加Product類的配置類
            modelBuilder.Configurations.Add(new ProductMap());
            base.OnModelCreating(modelBuilder);
        }


    }
}

查看數(shù)據(jù)庫(kù),可以看到符合我們的更改:

這種寫(xiě)法和使用modelBuilder是幾乎一樣的,只不過(guò)這種方法更好組織處理多個(gè)實(shí)體。你可以看到上面的語(yǔ)法和寫(xiě)jQuery的鏈?zhǔn)骄幊桃粯樱@種方式的鏈?zhǔn)綄?xiě)法就叫Fluent API。

到此這篇關(guān)于Entity Framework使用配置伙伴創(chuàng)建數(shù)據(jù)庫(kù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論