Pomelo.EntityFrameworkCore.Lolita.MySql

Package Description


Keywords
Entity, Framework, Core, Extensions, Bulk, Update, Delete
License
MIT
Install
Install-Package Pomelo.EntityFrameworkCore.Lolita.MySql -Version 1.1.0

Documentation

Lolita

Travis build status AppVeyor build status NuGet Join the chat at https://gitter.im/PomeloFoundation/Home

A light-weight extension which provides bulk update and delete operations for Entity Framework Core.

Getting Started

â‘  Add Pomelo.EntityFrameworkCore.Lolita package into your project.json. There are many different special versions for different EF database providers:

  • 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.

using Microsoft.EntityFrameworkCore;

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:

Method SQL Hint
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