(Entity Framework Core入門)一、EFCore簡介


1.說明:

一種ORM(Object Relational Mapper),用於程序中的class類和數據庫中的表互相之間進行建立映射關系

2.優勢

1)生產力

2)支多種數據庫

3)可以使用Linq

4)注重領域(Domain),而不是數據庫

 

3.支持框架

1).NET Core2.X

2).NET 4.6.1+

3)UWP

4)Xamarin

 

4.使用

1)建立項目EFCore、類庫(Core.Data、EFCore.Domain.Models)

 

2)在EFCore.Domain.Models類庫中建立City.cs、Province.cs

 

Province.cs

using System;
using System.Collections.Generic;
using System.Text;

namespace EFCore.Domain.Models
{
    /// <summary>
    /// 省份
    /// </summary>
    public class Province
    {
        public Province()
        {
            Cities = new List<City>();
        }

        /// <summary>
        /// 編碼
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 省份名稱
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 人口
        /// </summary>
        public int Population { get; set; }

        /// <summary>
        /// 城市
        /// </summary>
        public List<City> Cities { get; set; }

    }
}

 

City.cs

using System;
using System.Collections.Generic;
using System.Text;

namespace EFCore.Domain.Models
{
    /// <summary>
    /// 城市
    /// </summary>
    public class City
    {
        /// <summary>
        /// 編碼
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// 城市名稱
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 郵編
        /// </summary>
        public string AreaCode { get; set; }

        /// <summary>
        /// 所屬省份編碼
        /// </summary>
        public int ProviedId { get; set; }

        /// <summary>
        /// 省份
        /// </summary>
        public Province Province { get; set; }
    }
}

 

3)在Core.Data類庫的Nuget中安裝Microsoft.EntityFrameworkCore.Sql

 

4)引用類庫EFCore.Domain.Models

 

5)在Core.Data類庫添加MyContext.cs

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Text;
using EFCore.Domain.Models;

namespace Core.Data
{
    public class MyContext:DbContext
    {
        public DbSet<Province> Provinces { get; set; }
        public DbSet<City> Cities { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //使用本地的Windows驗證
            optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=EFCoreDemo;Trusted_Connection=True;");
            //base.OnConfiguring(optionsBuilder);
        }

    }
}

 

5.EFCore遷移(在Visual Studio中使用,需要安裝Microsoft.EntityFrameworkCore.Tools)

1)步驟說明

①創建/修改Domain Model

②創建遷移文件

③應用遷移到數據庫,或者生成腳本

 

2)遷移

①在Core.Data類庫的Nuget中安裝Microsoft.EntityFrameworkCore.Tools

 

②點擊選擇打開 工具=》Nuget包管理器=》程序包管理器控制台

 

 ③在 程序包管理器控制台 運行 get-help entityframeworkcore 查看命令

 

④執行命令 Add-Migration Initial 

結果發現:

 

原因:電腦PowerShell版本太低(https://www.microsoft.com/zh-CN/download/details.aspx?id=40855

 升級后執行add-migration build123(取個名字:build123 )

注意:啟動項必須設置成含有數據庫連接的項目程序(將Core.Data設置為啟動項,因為數據庫連接文件MyContext.cs在此項目中)

 

得到生成文件:

快照文件:MyContextModelSnapshot.cs

遷移文件:20190409135744_build123.cs

 

⑤使用script-migration執行獲取數據庫執行文件(fy5kwycw.sql),用其在數據庫上執行生成數據庫

 


或者使用Update-Database直接生成數據庫,然后在 C/User/用戶名  文件里頭可以找到EFCoreDemo.mdf數據庫

 

 

查看數據庫

 

 

 

感謝:Dave

參閱: https://v.qq.com/x/page/h0762wjguc5.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM