一:建立EF的類庫,同時將此專案設定為啟動項(為Scaffold-DbContext -tables指令使用),同時安裝2個包  

①Microsoft.EntityFrameworkCore.Tools

②Pomelo.EntityFrameworkCore.MySql (這個是第三方的ef mysql 中介軟體)

例如:

二:生成資料庫的實體和EF的DBcontext物件,用到的是 Scaffold-DBcontext命令

在程式包控制檯輸入以下命令

Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"

server:資料庫地址,User Id:賬號,Password:登入密碼

如果是針對單表的更新,加一個-Tables 後面是要更新的表名

Scaffold-DbContext -Force  "Server=****;User Id=root;Password=****;Database=****" -Provider "Pomelo.EntityFrameworkCore.MySql"  -Tables "myTable"

執行完成之後會生成指定的是Model ,注意:表必須有主鍵,才會生成,如果沒有主機會報 Unable to generate entity type for table “xxxx” 警告,當然實體也不會生成

出現的問題:如果有表字段為 datetime型別的,生成的時候會報錯 應輸入識別符號,處理方法:把.()去掉。此問題如果有大神看到幫忙解答下

例如:

三:建立標準的web應用,進行使用

①在appsettings.json配置資料庫的地址資訊,注意  SslModel=none例如

"MySqlConnection": "Database='***';Data Source=****;User ID=***;Password=***;CharSet=utf8;SslMode=None"

② 在startup.cs 配置注入,其中有用到一些引用 順手引用一下

 public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
}); //ef mysql 配置
services.AddDbContext<drewtestContext>(options => options.UseMySql(Configuration.GetConnectionString("MySqlConnection"))); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

  ③之後就是標準的呼叫,例如在控制器中的使用

 public class HomeController : Controller
{
drewtestContext _content;
public HomeController(drewtestContext context)
{
_content = context;
} public IActionResult Index()
{
List<SctonlyHome> list_sctonlyHomes = _content.SctonlyHome.ToList();
return View();
}
}

到此就是基礎的EF core mysql入門配置了。

----再牛逼的夢想,也抵不住我傻逼似的堅持!別在該奮鬥的年紀,貪圖安逸。 今天多學一點,明天的路更寬!