查询
GetSingle* 适合“应该只有一条”的场景;GetFirst* 适合只关心第一条记录的场景。它们都提供 Async 版本。
按 ID 查询
csharp
var entityId = 1;
var entity = Db.Query<EntityClass>(entityId).GetSingleOrDefault();csharp
var entityId = 1;
var entity = await Db.Query<EntityClass>(entityId).GetSingleOrDefaultAsync();取第一条记录
csharp
var firstEntity = Db.Query<EntityClass>()
.OrderBy(i => i.Id)
.GetFirstOrDefault();csharp
var firstEntity = await Db.Query<EntityClass>()
.OrderBy(i => i.Id)
.GetFirstOrDefaultAsync();查询所有
csharp
var entities = Db.Query<EntityClass>().GetList();csharp
var entities = await Db.Query<EntityClass>().GetListAsync();分页查询
csharp
var pagedResult = Db.QueryPaged<EntityClass>(1, 1)
.OrderBy(i => i.Id)
.GetPagedResult();csharp
var pagedResult = await Db.QueryPaged<EntityClass>(1, 1)
.OrderBy(i => i.Id)
.GetPagedResultAsync();查询计数
csharp
int count = Db.QueryCount<EntityClass>().GetSingle<int>();csharp
int count = await Db.QueryCount<EntityClass>().GetSingleAsync<int>();判断是否存在
csharp
var entityId = 1;
bool exists = Db.QueryExists<EntityClass>(entityId).Get();csharp
var entityId = 1;
bool exists = await Db.QueryExists<EntityClass>(entityId).GetAsync();带 where 条件的查询
csharp
string name = "Tom";
var entities = Db.Query<EntityClass>()
.WhereEq(i => i.Name, name)
.WhereLt(i => i.Age, 18)
.GetList();查询指定属性
csharp
var entities = Db.Query<EntityClass>()
.Select(i => i.Id)
.Select(i => i.Name)
.GetList();从指定表查询
csharp
string table = "entity_table";
var entities = Db.Query<EntityClass>()
.From(table)
.GetList();带 or 条件的查询
csharp
var firstId = 1;
var lastId = 2;
var filter = SqlBuilder<EntityClass>.Filter;
var results = await Db.Query<EntityClass>()
.WhereOr(filter.Eq(i => i.Id, firstId), filter.Eq(i => i.Id, lastId))
.OrderBy(i => i.Id)
.GetListAsync();直接取原始列表
csharp
var results = Db.Query<EntityClass>()
.WhereRaw("[IsDeleted] = {0}", false)
.GetList();