mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-27 05:02:50 +08:00

- 增加 PostgreSQL 的 Odbc 访问提供,相比 FreeSql.Provider.PostgreSQL 支持的类型更少; - 增加 通用的 Odbc 访问提供,不能迁移实体到数据库,不能 Skip 这样来分页,理论上能 crud 所有 odbc 数据库;
210 lines
6.9 KiB
C#
210 lines
6.9 KiB
C#
using FreeSql.DataAnnotations;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Xunit;
|
|
|
|
namespace FreeSql.Tests.Odbc.DefaultExpression
|
|
{
|
|
public class TimeSpanTest
|
|
{
|
|
|
|
ISelect<Topic> select => g.odbc.Select<Topic>();
|
|
|
|
[Table(Name = "tb_topic")]
|
|
class Topic
|
|
{
|
|
[Column(IsIdentity = true, IsPrimary = true)]
|
|
public int Id { get; set; }
|
|
public int Clicks { get; set; }
|
|
public int TypeGuid { get; set; }
|
|
public TestTypeInfo Type { get; set; }
|
|
public string Title { get; set; }
|
|
public DateTime CreateTime { get; set; }
|
|
}
|
|
class TestTypeInfo
|
|
{
|
|
public int Guid { get; set; }
|
|
public int ParentId { get; set; }
|
|
public TestTypeParentInfo Parent { get; set; }
|
|
public string Name { get; set; }
|
|
}
|
|
class TestTypeParentInfo
|
|
{
|
|
public int Id { get; set; }
|
|
public string Name { get; set; }
|
|
|
|
public List<TestTypeInfo> Types { get; set; }
|
|
}
|
|
[Fact]
|
|
public void Zero()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.Zero).ToList());
|
|
}
|
|
[Fact]
|
|
public void MinValue()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay > TimeSpan.MinValue).ToList());
|
|
}
|
|
[Fact]
|
|
public void MaxValue()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay < TimeSpan.MaxValue).ToList());
|
|
}
|
|
[Fact]
|
|
public void Days()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Days == 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void Hours()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Hours > 0).ToSql());
|
|
}
|
|
[Fact]
|
|
public void Milliseconds()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Milliseconds > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void Minutes()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Minutes > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void Seconds()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Seconds > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void Ticks()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Ticks > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void TotalDays()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalDays > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void TotalHours()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalHours > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void TotalMilliseconds()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMilliseconds > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void TotalMinutes()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalMinutes > 0).ToSql());
|
|
}
|
|
[Fact]
|
|
public void TotalSeconds()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.TotalSeconds > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void Add()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Add(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
}
|
|
[Fact]
|
|
public void Subtract()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Subtract(TimeSpan.FromDays(1)) > TimeSpan.Zero).ToList());
|
|
}
|
|
[Fact]
|
|
public void CompareTo()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.CompareTo(TimeSpan.FromDays(1)) > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void this_Equals()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.Equals(TimeSpan.FromDays(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void this_ToString()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => a.CreateTime.TimeOfDay.ToString() == "ssss").ToList());
|
|
}
|
|
|
|
[Fact]
|
|
public void TimeSpan_Compare()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Compare(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1)) > 0).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_Equals()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_FromDays()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromDays(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_FromHours()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromHours(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_FromMilliseconds()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMilliseconds(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_FromMinutes()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromMinutes(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_FromSeconds()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromSeconds(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_FromTicks()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Equals(a.CreateTime.TimeOfDay, TimeSpan.FromTicks(1))).ToList());
|
|
}
|
|
[Fact]
|
|
public void TimeSpan_Parse()
|
|
{
|
|
var data = new List<object>();
|
|
data.Add(select.Where(a => TimeSpan.Parse(a.CreateTime.TimeOfDay.ToString()) > TimeSpan.Zero).ToList());
|
|
}
|
|
}
|
|
}
|