MySQL Database on Azure 是 Azure 平臺上推出的 MySQL 雲資料庫服務,通過全面相容 MySQL 協議,為用戶提供了一個全托管的性能穩定、可快速部署、高可用、高安全性的資料庫服務。客戶可以使用常見的支持 MySQL 的平臺與技術進行開發與集成。本文演示瞭如何使用 My ...
MySQL Database on Azure 是 Azure 平臺上推出的 MySQL 雲資料庫服務,通過全面相容 MySQL 協議,為用戶提供了一個全托管的性能穩定、可快速部署、高可用、高安全性的資料庫服務。客戶可以使用常見的支持 MySQL 的平臺與技術進行開發與集成。本文演示瞭如何使用 MySQL EntityFramework 組件對 MySQL PaaS DB 進行操作。
系統環境 / 應用程式信息
ASP.NET 2005 Core / MYSQL EntityFrameWork Core
詳細代碼
在 VS 2015 Net Core 的環境中,安裝 EntityFrameWork Core 組件,代碼和測試後結果如下:
其中 Data1Context.cs 文件為:
using Microsoft.EntityFrameworkCore; using MySQL.Data.EntityFrameworkCore.Extensions; namespace ConsoleApp1 { /// <summary> /// The entity framework context with a data1 DbSet /// </summary> public class Data1Context : DbContext { public Data1Context(DbContextOptions<Data1Context> options) : base(options) { } public DbSet<Data1> Data1 { get; set; } } /// <summary> /// Factory class for EmployeesContext /// </summary> public static class Data1ContextFactory { public static Data1Context Create(string connectionString) { var optionsBuilder = new DbContextOptionsBuilder<Data1Context>(); optionsBuilder.UseMySQL(connectionString); //Ensure database creation var context = new Data1Context(optionsBuilder.Options); context.Database.EnsureCreated(); return context; } } /// <summary> /// A basic class for an Employee /// </summary> public class Data1 { public int Id { get; set; } public string Name1 { get; set; } } }
Program.cs 文件為:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; namespace ConsoleApp1 { public class Program { public static void Main(string[] args) { var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); var configuration = builder.Build(); string connectionString = configuration.GetConnectionString("SampleConnection"); // Create an employee instance and save the entity to the database var entry = new Data1() { Id = 3, Name1 = "XingBing" }; using (var context = Data1ContextFactory.Create(connectionString)) { context.Add(entry); context.SaveChanges(); } Console.WriteLine($"Data1 was saved in the database with id: {entry.Id}"); Console.ReadKey(); } } }
appsettings.json 文件為:
{ "ConnectionStrings": { "SampleConnection": "server=XXXXXX.mysqldb.chinacloudapi.cn;userid=XXXXXX%YYYYYY;pwd=XXXXXXXXX;port=3306;database=xyudb;sslmode=none;" } }
project.json 文件為:
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true, "copyToOutput": { "include": "appsettings.json" } }, "dependencies": { "Microsoft.Extensions.Configuration": "1.0.0", "Microsoft.Extensions.Configuration.Json": "1.0.0", "Microsoft.EntityFrameworkCore": "1.0.0", "MySql.Data.Core": "7.0.4-IR-191", "MySql.Data.EntityFrameworkCore": "7.0.4-IR-191" }, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0" } }, "imports": [ "dnxcore50", "portable-net452+win81" ] } } }
項目組成
運行及測試結果
組件地址
MySql.Data.EntityFrameworkCore 7.0.7-m61
參考方法
MySQL EF Core provider and Connector/Net 7.0.4 入門教程
歡迎有興趣的朋友多多交流
A究院研究生 [email protected]