溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2022-03-03 14:06:40 來源:億速云 閱讀:120 作者:iii 欄目:開發(fā)技術

這篇“Entity Framework中怎么使用配置伙伴創(chuàng)建數(shù)據(jù)庫”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Entity Framework中怎么使用配置伙伴創(chuàng)建數(shù)據(jù)庫”文章吧。

EF提供了另一種方式來解決這個問題,那就是為每個實體類單獨創(chuàng)建一個配置類。然后在OnModelCreating方法中調用這些配置伙伴類。

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

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實體類的配置類: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()
        {
            // 設置生成的表名稱
            ToTable("ProductConfiguration");
            // 設置生成表的主鍵
            this.HasKey(p => p.ProductNo);
            // 修改生成的列名
            this.Property(p =>p.ProductNo).HasColumnName("Id");
            this.Property(p => p.ProductName)
                .IsRequired()  // 設置 ProductName列是必須的
                .HasColumnName("Name"); // 將ProductName映射到數(shù)據(jù)表的Name列

        }
    }
}

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

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ù)庫,可以看到符合我們的更改:

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

這種寫法和使用modelBuilder是幾乎一樣的,只不過這種方法更好組織處理多個實體。你可以看到上面的語法和寫jQuery的鏈式編程一樣,這種方式的鏈式寫法就叫Fluent API。

以上就是關于“Entity Framework中怎么使用配置伙伴創(chuàng)建數(shù)據(jù)庫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI