说到底还是对数据库进行操作,无论你是写还是最后总归都是要生成语句。
测试数据库:
NuGet包:
实体对象:
DemoContext context = new DemoContext(;
DbSet<User> users = context.User;
DbSet<School> schools = context.School;
查询
ToList
users.ToList(;
Where
users.Where(u => u.SchoolId == 1.ToList(;
OrderBy
users.OrderBy(u => u.Age.ToList(;
ThenBy
users.OrderBy(u => u.Age.ThenBy(u => u.SchoolId.ToList(;
Take
users.Take(2.ToList(;
Skip
这里出现了一个奇怪的数字:,这是一张表理论上能存储的最大行数。
users.Skip(2.ToList(;
Skip And Take
users.Skip(1.Take(2.ToList(;
GroupBy
users.GroupBy(u => u.SchoolId
.Select(u => new { count = u.Count(, item = u.FirstOrDefault( }
.ToList(;
Join(Inner Join)
users.Join(schools, u => u.SchoolId, t => t.Id, (u, t =>
new Student
{
Name = u.Name,
School = t.Name
}.ToList(;
GroupJoin(Left Join)
users.GroupJoin(schools, u => u.SchoolId, t => t.Id, (u, t => new { user = u, school = t }
.SelectMany(x => x.school.DefaultIfEmpty(, (u, t =>
new Student
{
Name = u.user.Name,
School = t.Name
}.ToList(;
增删改
Add
users.Add(user;
AddRange
users.AddRange(userList;
Update
users.Update(user;
UpdateRange
users.UpdateRange(userList;
Remove
users.Remove(users.FirstOrDefault(c => c.Id == 100;
RemoveRange
users.RemoveRange(users.Where(c => c.Age > 100;