Entity Framework Core Lolita
這是Entity Framework Core的一個輕量的擴展,提供批量更新和刪除操作的支持。而且這個庫出自中國一位MVP之手,雖然內容是英文,也很簡單,相信你也能看懂。
This is a light-weight extension which provides bulk update and delete operations for Entity Framework Core.
View source on GitHub
Download from NuGet
Getting Started
① Add?Pomelo.EntityFrameworkCore.Lolita?package into your?project.json. There are many different special versions for different EF database provider:
Pomelo.EntityFrameworkCore.Lolita.MySql
Pomelo.EntityFrameworkCore.Lolita.SqlServer
Pomelo.EntityFrameworkCore.Lolita.PostgreSQL
Pomelo.EntityFrameworkCore.Lolita.Sqlite
② Configure your DbContext
For ASP.NET Core developers, you can Use lolita extensions when adding the DbContext into services collection:
services.AddDbContext<Models.SampleContext>(x => {x.UseMySql(? ? ?"server=localhost;database=lolita;uid=root;pwd=yourpwd;");x.UseMySqlLolita(); });
For .NET Core developers, you can override the OnConfiguring of DbContext to use lolita:
protected override void OnConfiguring(? ? ? ? ? ? ? ? ? ? ? ? ? DbContextOptionsBuilder optionsBuilder)
{optionsBuilder.UseMySql(
? ? ? ? "server=localhost;database=lolita;uid=root;pwd=yourpwd;");optionsBuilder.UseMySqlLolita(); ?
?base.OnConfiguring(optionsBuilder); }
③ There are many different extended methods for updating a column or bulk deleting.
Updating:
db.Posts.Where(x => x.Time <= DateTime.Now).SetField(x => x.IsPinned).WithValue(false).Update();You can also use the following methods to update a field:
| WithValue | SET [x] = @value | |
| Plus | SET [x] = [x] + @value | Numeric only |
| Subtract | SET [x] = [x] - @value | Numeric only |
| Multiply | SET [x] = [x] * @value | Numeric only |
| Divide | SET [x] = [x] / @value | Numeric only |
| Mod | SET [x] = [x] % @value | Numeric only |
| Prepend | SET [x] = @value + [x] | String only |
| Append | SET [x] = [x] + @value | String only |
| AddMilliseconds | SET [x] = DATEADD(ms, @value, [x]) | DateTime only |
| AddSeconds | SET [x] = DATEADD(ss, @value, [x]) | DateTime only |
| AddMinutes | SET [x] = DATEADD(mi, @value, [x]) | DateTime only |
| AddHours | SET [x] = DATEADD(hh, @value, [x]) | DateTime only |
| AddDays | SET [x] = DATEADD(dd, @value, [x]) | DateTime only |
| AddMonths | SET [x] = DATEADD(mm, @value, [x]) | DateTime only |
| AddYears | SET [x] = DATEADD(yy, @value, [x]) | DateTime only |
Deleting:
db.Users.Where(x => db.Posts.Count(y => y.UserId == x.Id) == 0).Where(x => x.Role == UserRole.Member).Delete();Contribute
One of the easiest ways to contribute is to participate in discussions and discuss issues. You can also contribute by submitting pull requests with code changes.
License
MIT
相關文章:
全球首發免費的MySql for Entity Framework Core
.NET Core 使用Dapper 操作MySQL
在.NET Core中使用MySQL5.7的JSON類型字段
原文地址:http://www.1234.sh/post/ef-core-lolita
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的Entity Framework Core Lolita的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core系列 :3 、使用多个
- 下一篇: 【送书活动】机器学习项目开发实战