Asp.net core 学习笔记 ( ef core )


Entity Framework 已经很多年了. 

ef core 和 从前的 ef 6.x 用起来是差不多的.

ef core 的有点事跨平台,更好的性能,持续发展中 ... 

ef 6.x 是功能比较齐全, 但是逐渐被淘汰了.. 

基本用法和从前是一样的, 比如 

创建 DbContext, 定义 Entity 还有关系等等 

namespace Project.Models
{
    public class DB : DbContext
    {
        public DB(DbContextOptions<DB> options) : base(options)
        {

        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {  
        }
        public virtual DbSet<Product> Products { get; set; }      
    }
}

在 startup.cs 里的 ConfigureServices 加入 

services.AddDbContext<DB>(options =>
        options.UseSqlServer("Server=192.168.1.152;Database=test-webapi-odata;User Id=keatkeat;Password=001001;"));    

在 controller 依赖注入调用就可以了

public class HomeController : Controller
{
    public DB Db { get; set; }
    public HomeController(DB db) {
        Db = db;
    }
    public async Task<IActionResult> Index()
    {
        var products = await Db.Products.ToListAsync();
        return View();
    } 
}

要生产 database 或需要 database 可以使用 ef core 的工具 migrations

这个有点像是 version control 一样, 创建 migrations -> 工具会生产一个 Up 的代码和一个 Down 的代码 用于对数据库添加内容和移除内容. 

自动生产以后,我们可以手动修改这些代码,然后 update database, 这样当我们 commit 的时候 Up 代码被执行, rollback 的时候 Down 代码被执行, 大概就是这个过程. 

它是用命令来操作的, 打开 Package Manager Console 

输入 add-migration init 

init 是一个名字,可以随意放. 

输入 update-database

这时 Up 代码执行, 数据库就被更新了. 

如果要 rollback 某个 version

输入 update-database somename 

somename 就是你第一步我们为那一次 migrations 取得名字. 

这样 Down 代码被执行,数据库成功还原了. 

猜你喜欢

转载自www.cnblogs.com/keatkeat/p/9296592.html