1. 程式人生 > >Net Core 學習入門(五)----------使用EF連結資料庫

Net Core 學習入門(五)----------使用EF連結資料庫

由於netcore2.0集成了Ef,所以我們使用Ef的時候配置一下就行了。

1,配置資料庫連結appsetting.json

{
    "Logging": {
        "IncludeScopes": false,
        "LogLevel": {
            "Default": "Warning"
        }
    },
    "DBSetting": {
        "ConnectString": "server=.;database=TestEF;uid=sa;pwd=123456"

    }
}

2,寫一個model

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace CoreMvc.Models
{
    public class Product
    {
        public int Id { set; get; }

        public string Name { set; get; }
    }
}

3,寫一個DB操作類繼承EF操作資料庫的DBContext,並設定容器

using CoreMvc.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;

namespace CoreMvc.Common
{
    public class DB : DbContext
    {
        public DbSet<Product> Products { set; get; }

        public DB()
        {   //如果沒有資料庫,自動建立,有了什麼都不幹
            Database.EnsureCreated();
        }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {    //對於這個上下文重寫此方法以配置要使用的資料庫(和其他選項)。對於上下文的每個例項呼叫此方法建立。
           
            //載入appsetting.json
            IConfiguration configuration = new ConfigurationBuilder()
                 .SetBasePath(Directory.GetCurrentDirectory())
              .AddJsonFile("appsettings.json").Build();

            string connectionString = configuration["DBSetting:ConnectString"];
            optionsBuilder.UseSqlServer(connectionString);
          
            base.OnConfiguring(optionsBuilder);
        }
    }

}

4,寫一個controller測試一下

        public IActionResult Index()
        {
            var db = new DB();
            db.Products.Add(new Product
            {
                
                Name = "紅富士"
            });
            db.SaveChanges();

            return View();
        }
5,完畢,EF的增刪改查就不寫了。