static void Main(string[] args) { Console.Title = "Expression2SqlTest"; //通过静态属性DatabaseType或者静态方法Init均可配置数据库类型 Expre2Sql.DatabaseType = DatabaseType.SQLServer; //Expre2Sql.Init(DatabaseType.SQLServer); Printf( Expre2Sql.Select <UserInfo>(), "查询单表所有字段" ); Printf( Expre2Sql.Select <UserInfo>(u => u.Id), "查询单表单个字段" ); Printf( Expre2Sql.Select <UserInfo>(u => new { u.Id, u.Name }), "查询单表多个字段" ); Printf( Expre2Sql.Select <UserInfo>(u => u.Id). Where(u => u.Name.Like("b")), "查询单表,带where Like条件" ); Printf( Expre2Sql.Select <UserInfo>(u => u.Id). Where(u => u.Name.LikeLeft("b")), "查询单表,带where LikeLeft条件" ); Printf( Expre2Sql.Select <UserInfo>(u => u.Id). Where(u => u.Name.LikeRight("b")), "查询单表,带where LikeRight条件" ); Printf( Expre2Sql.Select <UserInfo>(u => u.Name). Where(u => u.Id.In(1, 2, 3)), "查询单表,带where in条件,写法一" ); int[] aryId = { 1, 2, 3 }; Printf( Expre2Sql.Select <UserInfo>(u => u.Name). Where(u => u.Id.In(aryId)), "查询单表,带where in条件,写法二" ); Printf( Expre2Sql.Select <UserInfo>(u => u.Name). Where(u => u.Name.In(new string[] { "a", "b" })), "查询单表,带where in条件,写法三" ); Printf( Expre2Sql.Select <UserInfo>(u => u.Id). Where( u => u.Name == "b" && u.Id > 2 && u.Name != null && u.Id > int.MinValue && u.Id < int.MaxValue && u.Id.In(1, 2, 3) && u.Name.Like("a") && u.Name.LikeLeft("b") && u.Name.LikeRight("c") || u.Id == null ), "查询单表,带多个where条件" ); Printf( Expre2Sql.Select <UserInfo, Account>((u, a) => new { u.Id, a.Name }). Join <Account>((u, a) => u.Id == a.UserId), "多表Join关联查询" ); Printf( Expre2Sql.Select <UserInfo, Account>((u, a) => new { u.Id, a.Name }). InnerJoin <Account>((u, a) => u.Id == a.UserId), "多表InnerJoin关联查询" ); Printf( Expre2Sql.Select <UserInfo, Account>((u, a) => new { u.Id, a.Name }). LeftJoin <Account>((u, a) => u.Id == a.UserId), "多表LeftJoin关联查询" ); Printf( Expre2Sql.Select <UserInfo, Account>((u, a) => new { u.Id, a.Name }). RightJoin <Account>((u, a) => u.Id == a.UserId), "多表RightJoin关联查询" ); Printf( Expre2Sql.Select <UserInfo, Account>((u, a) => new { u.Id, a.Name }). FullJoin <Account>((u, a) => u.Id == a.UserId), "多表FullJoin关联查询" ); Printf( Expre2Sql.Select <UserInfo, Account, Student, Class, City, Country>((u, a, s, d, e, f) => new { u.Id, a.Name, StudentName = s.Name, ClassName = d.Name, e.CityName, CountryName = f.Name }). Join <Account>((u, a) => u.Id == a.UserId). LeftJoin <Account, Student>((a, s) => a.Id == s.AccountId). RightJoin <Student, Class>((s, c) => s.Id == c.UserId). InnerJoin <Class, City>((c, d) => c.CityId == d.Id). FullJoin <City, Country>((c, d) => c.CountryId == d.Id). Where(u => u.Id != null), "多表复杂关联查询" ); Printf( Expre2Sql.Select <UserInfo>(). GroupBy(u => u.Name), "GroupBy分组查询" ); Printf( Expre2Sql.Select <UserInfo>(). OrderBy(u => u.Id), "OrderBy排序" ); Printf( Expre2Sql.Max <UserInfo>(u => u.Id), "返回一列中的最大值。NULL 值不包括在计算中。" ); Printf( Expre2Sql.Min <UserInfo>(u => u.Id), "返回一列中的最小值。NULL 值不包括在计算中。" ); Printf( Expre2Sql.Avg <UserInfo>(u => u.Id), "返回数值列的平均值。NULL 值不包括在计算中。" ); Printf( Expre2Sql.Count <UserInfo>(), "返回表中的记录数" ); Printf( Expre2Sql.Count <UserInfo>(u => u.Id), "返回指定列的值的数目(NULL 不计入)" ); Printf( Expre2Sql.Sum <UserInfo>(u => u.Id), "返回数值列的总数(总额)。" ); Printf( Expre2Sql.Delete <UserInfo>(), "全表删除" ); Printf( Expre2Sql.Delete <UserInfo>(). Where(u => u.Id == null), "根据where条件删除指定表记录" ); Printf( Expre2Sql.Update <UserInfo>(() => new { Name = "", Sex = 1, Email = "*****@*****.**" }), "全表更新" ); Printf( Expre2Sql.Update <UserInfo>(() => new { Name = "", Sex = 1, Email = "*****@*****.**" }). Where(u => u.Id == 1), "根据where条件更新指定表记录" ); Console.ReadKey(); //to be continued... }