区分大小写

有些数据库在创建的时候就设置了某种规则,有些区分大小写,有些不区分大小写。
不区分大小写的数据库,比如我要比较两个字段

name = “Alice” where name = “alice”

结果相等。
不光在ef里面这样,就是写sql脚本,在数据库里面执行都相等。前面也说了这是数据库在创建时很多默认设置的排序规则,当然可以手动设置区分大小写的规则,但是却分大小写,影响索引性能。

话说回来,在ef里面如果要 区分大小写

EF.Functions.Collate(数据里面的某值, “SQL_Latin1_General_CP1_CS_AS”)

  1. var linq1 = from dbset in _catalogdb.Dbsets
  2. where setid == EF.Functions.Collate(dbset.Setid, "SQL_Latin1_General_CP1_CS_AS")
  3. select dbset;
  1. var customers = context.Customers
  2. .Where(c => EF.Functions.Collate(c.Name, "SQL_Latin1_General_CP1_CS_AS") == "John")
  3. .ToList();

参考

排序规则和区分大小写

分页

分页需要两个参数,当前页数,和每页显示的数据条数。
Skip:跳过多少数据
Take:取多少数据

例子:当前页面是第二页,每页显示20条数据,Skip((2-1)*20),跳过第一页的20条数据,Take(20)取20条数据,这取的20 条就是第二页的数据

  1. 查询出来的linq.Skip((index - 1) * pagesize).Take(pagesize).ToList()