public void OrderByTest() { using (IBulkedDbConnection bulk = FConnection.CreateBulkedDbConnection()) { bulk.Insert(new OrmType { Id = Guid.NewGuid(), Order = 1 }, new OrmType { Id = Guid.NewGuid(), Order = 2 }); bulk.Flush(); } SqlExpression <OrmType> expression = FConnection.From <OrmType>(); expression.PrefixFieldWithTableName = true; ISqlQuery query = new OrmLiteSqlQuery(expression); query.Select(typeof(OrmType).GetProperty(nameof(OrmType.Order)), typeof(OrmType).GetProperty(nameof(OrmType.Order))); query.OrderBy(typeof(OrmType).GetProperty(nameof(OrmType.Order))); query.OrderByDescending(typeof(OrmType).GetProperty(nameof(OrmType.Id))); List <OrmType> result = query.Run <OrmType>(FConnection); Assert.That(result.Count, Is.EqualTo(2)); Assert.That(result[0].Order, Is.EqualTo(1)); Assert.That(result[1].Order, Is.EqualTo(2)); }
public void JoinTest() { Guid id = Guid.NewGuid(); using (IBulkedDbConnection bulk = FConnection.CreateBulkedDbConnection()) { bulk.Insert(new OrmType { Id = id }); bulk.Insert(new OrmTypeWithReference { Id = Guid.NewGuid(), Reference = id }); bulk.Flush(); } SqlExpression <OrmType> expression = FConnection.From <OrmType>(); ISqlQuery query = new OrmLiteSqlQuery(expression); query.Select(typeof(OrmType).GetProperty(nameof(OrmType.Id)), typeof(MyView).GetProperty(nameof(MyView.Azonosito))); query.InnerJoin(typeof(OrmType).GetProperty(nameof(OrmType.Id)), typeof(OrmTypeWithReference).GetProperty(nameof(OrmTypeWithReference.Reference))); List <MyView> result = query.Run <MyView>(FConnection); Assert.That(result.Count, Is.EqualTo(1)); Assert.That(result.Single().Azonosito, Is.EqualTo(id)); }
public void AggregateTest() { Guid reference = Guid.NewGuid(); using (IBulkedDbConnection bulk = FConnection.CreateBulkedDbConnection()) { bulk.Insert(new OrmType { Id = reference }); bulk.InsertAll(new[] { new OrmTypeWithReference { Id = Guid.NewGuid(), Reference = reference }, new OrmTypeWithReference { Id = Guid.NewGuid(), Reference = reference } }); bulk.Flush(); } SqlExpression <OrmTypeWithReference> expression = FConnection.From <OrmTypeWithReference>(); ISqlQuery query = new OrmLiteSqlQuery(expression); query.GroupBy(typeof(OrmTypeWithReference).GetProperty(nameof(OrmTypeWithReference.Reference))); query.SelectCount(typeof(OrmTypeWithReference).GetProperty(nameof(OrmTypeWithReference.Id)), typeof(CountView).GetProperty(nameof(CountView.Count))); List <CountView> result = query.Run <CountView>(FConnection); Assert.That(result.Count, Is.EqualTo(1)); Assert.That(result.Single().Count, Is.EqualTo(2)); }
/// <summary> /// Queries the given <typeparamref name="TView"/>. /// </summary> public static List <TView> Query <TView>(this IDbConnection connection, Action <IUntypedSqlExpression>?additions = null) { OrmLiteSqlQuery query = SmartSqlBuilder <TView> .Build(from => new OrmLiteSqlQuery(from)); additions?.Invoke(query.UnderlyingExpression); return(query.Run <TView>(connection)); }
public void SelectTest() { Guid id = Guid.NewGuid(); FConnection.Insert(new OrmType { Id = id }); SqlExpression <OrmType> expression = FConnection.From <OrmType>(); ISqlQuery query = new OrmLiteSqlQuery(expression); query.Select(typeof(OrmType).GetProperty(nameof(OrmType.Id)), typeof(MyView).GetProperty(nameof(MyView.Azonosito))); List <MyView> result = query.Run <MyView>(FConnection); Assert.That(result.Count, Is.EqualTo(1)); Assert.That(result.Single().Azonosito, Is.EqualTo(id)); }