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

toralux/Lolita

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

742deb7 · Aug 2, 2016

History

35 Commits
Aug 2, 2016
Aug 2, 2016
Aug 2, 2016
Jul 30, 2016
Jul 30, 2016
Jul 30, 2016
Jul 31, 2016
Jul 30, 2016
Aug 2, 2016
Jul 30, 2016
Jul 30, 2016
Jul 30, 2016
Jul 30, 2016
Jul 30, 2016

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.

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

Languages

  • C# 96.2%
  • PowerShell 2.1%
  • Shell 1.4%
  • Batchfile 0.3%