当前位置: 首页 > 工具软件 > NPoco > 使用案例 >

NPOCO总结

屈晨
2023-12-01

1.分页 

法1:

if (model.PageIndex > 0 && model.PageSize > 0) { 
      query = query.Limit(model.PageSize * (model.PageIndex - 1), model.PageSize); 
}

使用这种分页时,query必须是IQueryProvider<T>类型的,否则编译不通过

 

法2:

//总条数
var totalCount = query.Count();
// 总页数
var totalPage = totalCount % model.PageSize == 0
                    ? totalCount / model.PageSize
                    : totalCount / model.PageSize + 1;


if (totalPage >= model.PageIndex)
{
      query = query.Skip((model.PageIndex - 1) * model.PageSize).Take(model.PageSize);
}
else
{
      return null;
}

这种方式,对query的类型没有那么严格,只要是IEnumerable<T>或List<T>就行

 

2.InsertBatch

var list=new List<User>();
db.InsertBatch(list);

 

3.UpdateMany<T>

var list = new[] {1, 2, 3, 4};

db.UpdateMany<User>()
    .Where( x => x.UserId.In(list))
    .OnlyFields(x => x.Name)
    .Execute(new User() {Name = "test"});

 

3.DeleteMany<T>

var list = new[] {1, 2, 3, 4};

db.DeleteMany<User>()
    .Where(x => list.Contains(x.UserId))
    .Execute();

 

转载于:https://my.oschina.net/u/3578334/blog/1844722

 类似资料: