Skip to content

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

License

Notifications You must be signed in to change notification settings

PomeloFoundation/Lolita

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published