您好,登錄后才能下訂單哦!
這篇“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ù)庫,可以看到符合我們的更改:
這種寫法和使用modelBuilder是幾乎一樣的,只不過這種方法更好組織處理多個實體。你可以看到上面的語法和寫jQuery的鏈式編程一樣,這種方式的鏈式寫法就叫Fluent API。
以上就是關于“Entity Framework中怎么使用配置伙伴創(chuàng)建數(shù)據(jù)庫”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。