Query from Single Table (original) (raw)
中文 | English
static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.MySql, connectionString) .Build(); //Be sure to define as singleton mode
class Topic { [Column(IsIdentity = true)] public int Id { get; set; } public string Title { get; set; } public int Clicks { get; set; } public DateTime CreateTime { get; set; }
public int CategoryId { get; set; }
}
Single Table
fsql.Select()
.Where(a => a.Id == 10)
.ToList();
///SELECT a.Id
, a.Clicks
, a.CategoryId
, a.Title
, a.CreateTime
//FROM Topic
a
//WHERE (a.Id
= 10)
fsql.Select()
.Where(a => a.Id == 10 && a.Id > 10 || a.Clicks > 100)
.ToList();
///SELECT a.Id
, a.Clicks
, a.CategoryId
, a.Title
, a.CreateTime
//FROM Topic
a
//WHERE (a.Id
= 10 AND a.Id
> 10 OR a.Clicks
> 100)
fsql.Select()
.Where(a => new []{1,2,3}.Contains(a.Id))
.ToList();
//SELECT a.Id
, a.Clicks
, a.CategoryId
, a.Title
, a.CreateTime
//FROM Topic
a
//WHERE (a.Id
in (1,2,3))
WithSql
fsql.Select()
.WithSql("select * from Topic where clicks > @val", new { val = 10 })
.Page(1, 10)
.ToList()
//SELECT a.Id
, a.Clicks
, a.CategoryId
, a.Title
, a.CreateTime
//FROM (select * from Topic where clicks > @val) a
When
WithSql
is used multiple times, it will be converted toUNION ALL
query
v3.2.666 UnionAll Query、WithTempQuery + FromQuery Nested Query
v3.2.666 WithMemory Query using memory data
If the cross server or data table is cached
var list = new List(); list.Add(new Topic { ... }); list.Add(new Topic { ... });
fsql.Select()
.WithMemory(list)
.ToList()
//SELECT a.Id
, a.Clicks
, a.CategoryId
, a.Title
, a.CreateTime
//FROM (
// SELECT ...
// UNION ALL
// SELECT ...
//) a