Entity Framework Core基礎
Entity Framework Core基礎
1 什么是ORM? 有什么用?EF Core是什么?
ORM(object relational mapping,對象關系映射),其中 “對象”指的是C#中的對象,“關系”指的是關系數據庫,“映射”指的是在關系數據庫和C#對象之間搭建一座”橋梁“。ORM可以通過C#對象的方式操作數據庫。ORM只是對ADO.NET 的封裝,ORM底層仍然是通過ADO.NET訪問數據庫的。
EF Core是微軟官方提供的ORM框架,能夠操控多種不同類型的數據庫。開發效率高
2 為什么EF Core被稱為“模型驅動開發” ?
因為使用EF Core,開發人員可以從實體類的定義中自動生成數據庫表。開發人員專注于實體類模型的創建,而創建數據庫表這樣的事情交給EF Core完成。這種先創建實體類再生成數據庫表的開發模式叫“模型驅動開發”,區別與先創建表后創建實體類的“數據驅動開發”。
EF Core這種根據實體類生成數據庫表的操作叫作“遷移”(migration)。
3 EF Core創建表
示例:
1、創建Book類
public class Book
{
public long Id { get; set; }// 主鍵
public string Title { get; set; }// 書名
public DateTime PubTime { get; set; }// 發布日期
public double Price { get; set; }// 價格
public string AuthorName { get; set; }// 作者名字
}
2、安裝NuGet包 Microsoft.EntityFrameworkCore.SqlServer
3、創建一個實現了IEntityTypeConfiguration<>接口的實體類的配置類BookEntityConfig
public class BookEntityConfig : IEntityTypeConfiguration<Book>
{
public void Configure(EntityTypeBuilder<Book> builder)
{
builder.ToTable("T_Books");// 對應數據庫的表名
builder.Property(x => x.Title).HasMaxLength(50).IsRequired();// 設置一些限制。。。
builder.Property(x => x.AuthorName).HasMaxLength(20).IsRequired();
}
}
4、創建一個繼承DbContext的類TestDbContext
public class TestDbContext : DbContext
{
public DbSet<Book> Books { get; set; }// Books對應T_Books表
/// <summary>
/// 數據庫連接配置
/// </summary>
/// <param name="optionsBuilder"></param>
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string connStr = "Server=.;Database=EFCoreDemo;Trusted_Connection=True";
optionsBuilder.UseSqlServer(connStr);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// 加載當前程序集中所有實現了IEntityTypeConfiguration接口的類
modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
}
5、安裝NuGet包 Microsoft.EntityFrameworkCore.Tools
6、在【程序包管理器控制臺】中執行Add-Migration InitialCreate,之后項目就會生成Migration文件夾下的cs代碼。這時候代碼還沒被執行
7、需要在【程序包管理器控制臺】中執行Update-database,這樣才會應用到數據庫。
8、查看SQL Server數據庫,可以發現T_Books表創建成功,且與實體類中的配置一致。
9、對數據庫數據增刪改查操作的話就對Books對象操作【配合LINQ語句】
遇到的問題(證書鏈是由不受信任的頒發機構頒發的): http://www.rzrgm.cn/dawenyang/p/12985957.html

浙公網安備 33010602011771號