public static void BasicQuery() { IQuery <User> q = context.Query <User>(); q.Where(a => a.Id == 1).FirstOrDefault(); /* * */ //可以选取指定的字段 q.Where(a => a.Id == 1).Select(a => new { a.Id, a.Name }).FirstOrDefault(); /* * */ //分页 q.Where(a => a.Id > 0).OrderBy(a => a.Age).Skip(20).Take(10).ToList(); /* * */ /* like 查询 */ q.Where(a => a.Name.Contains("so") || a.Name.StartsWith("s") || a.Name.EndsWith("o")).ToList(); /* * */ /* in 一个数组 */ List <User> users = null; List <int> userIds = new List <int>() { 1, 2, 3 }; users = q.Where(a => userIds.Contains(a.Id)).ToList(); /* list.Contains() 方法组合就会生成 in一个数组 sql 语句 */ /* * */ /* in 子查询 */ users = q.Where(a => context.Query <City>().Select(c => c.Id).ToList().Contains((int)a.CityId)).ToList(); /* IQuery<T>.ToList().Contains() 方法组合就会生成 in 子查询 sql 语句 */ /* * */ /* distinct 查询 */ q.Select(a => new { a.Name }).Distinct().ToList(); /* * */ ConsoleHelper.WriteLineAndReadKey(); }
public static void CTest() { object result = null; List <int> ids = new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }; var q = context.Query <User>(); DateTime dt = DateTime.Now; string name = "hu"; string name1 = "lu"; string nameNull = null; string ageString = "18"; Int16 shortId = 2; int id = 2; long longId = 2; Gender gender = Gender.Man; User user = new User(); user.Name = "qinshuxin"; user.Age = 188; user.CityId = 1; user.OpTime = DateTime.Now; //user.TimeSpan = TimeSpan.FromDays(2); //context.Insert(user); //result = q.ToList(); //result = q.Select(a => new //{ // t = (TimeSpan?)(dt.Subtract(a.OpTime.Value)), // t2 = (TimeSpan?)(dt.Subtract(dt.AddMinutes(-60))) //}).ToList(); var reader = context.Session.ExecuteReader("SELECT DATE_PART('YEAR',NOW()) AS \"year\" FROM \"users\" AS \"users\""); reader.Read(); for (int i = 0; i < reader.FieldCount; i++) { Console.WriteLine($"{reader.GetName(i)}, {reader.GetFieldType(i).Name}, {reader.GetDataTypeName(i)}"); Console.WriteLine(reader.GetInt32(i)); } reader.Close(); TestEntity t = new TestEntity(); t.F_Byte = 1; t.F_Int16 = 16; t.F_Int32 = 32; t.F_Int64 = 64; t.F_Double = 1.2; t.F_Float = 1.1f; t.F_Decimal = 1.112m; t.F_Bool = true; t.F_DateTime = DateTime.Now; t.F_String = "soooo"; t.F_Json = "{\"id\": 10,\"age\":18}"; context.Insert(t); var list = context.Query <TestEntity>().OrderByDesc(a => a.Id).ToList(); t = list.First(); t.F_Bool = false; //context.Delete(t); ConsoleHelper.WriteLineAndReadKey(); }