準(zhǔn)備MySql數(shù)據(jù)庫
先準(zhǔn)備好一個mysql數(shù)據(jù)庫(我這里準(zhǔn)備的是test數(shù)據(jù)庫,里面又準(zhǔn)備了兩張表,其中book表中只有兩個字段,Id(bigint類型)和 Name(varchar類型))
使用Microsoft.EntityFrameworkCore.Design自動生成實(shí)體類
使用VS新建一個asp.net core web api項(xiàng)目(我這里使用的框架是.net5.0的,確保版本對應(yīng)很重要)
打開終端
進(jìn)到項(xiàng)目所在目錄(我這里解決方案名為DBTest,項(xiàng)目名也為DBTest,所以要進(jìn)入到DBTest\DBTest下而不是DBTest下)
安裝工具
dotnet tool install --global dotnet-ef
在項(xiàng)目上安裝包 Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Design -v 5.0.13
可以運(yùn)行以下命令以驗(yàn)證是否正確安裝了 EF Core CLI 工具
dotnet ef
出現(xiàn)了下列輸出則表示EF Core CLI安裝成功
至此EF Core CLI工具算是準(zhǔn)備好了,之后還要安裝MySql相關(guān)包
安裝Pomelo.EntityFrameworkCore.MySql包
dotnet add package Pomelo.EntityFrameworkCore.MySql -v 5.0.3
使用EF Core CLI生成實(shí)體類(確保數(shù)據(jù)庫連接字符串正確)
dotnet ef dbcontext scaffold "server=localhost;userid=root;pwd=root;port=3306;database=test;sslmode=none;" Pomelo.EntityFrameworkCore.MySql -o Repository -f
其中-o用于指定輸出路徑
-f表示出現(xiàn)同名文件時覆蓋原文件
出現(xiàn)Build Success就表示成功了
此時你會發(fā)現(xiàn)項(xiàng)目中多了一個Repository文件夾,里面有一個數(shù)據(jù)庫上下文的類和一些實(shí)體類,這些實(shí)體類實(shí)際上就是對應(yīng)了數(shù)據(jù)庫的表
.net 連接 MySql數(shù)據(jù)庫
在appsetting.json配置文件中加入連接字符串
"ConnectionStrings": {
"MySQL":"server=localhost;user id=root;password=root;port=3306;database=test"
}
注冊服務(wù)進(jìn)容器
services.AddDbContext<testContext>(options => options.UseMySql(Configuration.GetConnectionString("MySQL"), ServerVersion.AutoDetect(Configuration.GetConnectionString("MySQL"))));
OK,連接 MySql數(shù)據(jù)庫完成
使用EFCore操作數(shù)據(jù)庫
現(xiàn)在在需要操作數(shù)據(jù)庫的地方注入服務(wù)即可
例如在WeatherForecastController.cs中
再寫一個Action來測試操作數(shù)據(jù)庫
例如在book表中創(chuàng)建一條數(shù)據(jù)
[HttpGet("/CreateBook")]
public async Task<object> CreateBookAsync()
{
var book = await _context.Books.AddAsync(new Book
{
Id = 123L,
Name = "《ASP.NET Core框架揭秘》"
});
await _context.SaveChangesAsync();
return book.Entity;
}
運(yùn)行項(xiàng)目,訪問相關(guān)CreateBookAsync接口
訪問完畢后,查看數(shù)據(jù)庫發(fā)現(xiàn)book表中多了一條數(shù)據(jù)
大功告成
附上一些數(shù)據(jù)庫的其他操作
查詢與修改:文章來源:http://www.zghlxwxcb.cn/news/detail-465283.html
[HttpGet("/UpdateBook")]
public async Task<object> UpdateBookAsync()
{
//根據(jù)id查詢
var book = await _context.Books.FindAsync(123L);
//修改
book.Name = "《Hello World》";
//保存修改
return await _context.SaveChangesAsync();
}
查詢與刪除:文章來源地址http://www.zghlxwxcb.cn/news/detail-465283.html
[HttpGet("/DeleteBook")]
public async Task<object> DeleteBookAsync()
{
//根據(jù)條件查詢單條數(shù)據(jù)
var book = _context.Books.FirstOrDefault(book => book.Name == "《Hello World》");
//在DBContext中刪除數(shù)據(jù)
_context.Books.Remove(book);
//將刪除操作同步到數(shù)據(jù)庫中
return await _context.SaveChangesAsync();
}
到了這里,關(guān)于.net 連接MySql數(shù)據(jù)庫 + 使用Microsoft.EntityFrameworkCore.Design自動生成實(shí)體類 + 使用EFCore操作數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!