mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-19 04:18:16 +08:00
- 增加 实体特性 [Column(ServerTime = DateTimeKind.Utc)] 使用数据库时间执行插入数据;
- 修复 ToList(a => new Dto { .. }) 在使用 GroupBy 之后报错的 bug; - 修复 注释迁移到数据库,在 asp.net 4.7 无效的问题;
This commit is contained in:
@ -36,6 +36,7 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
|
||||
public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
}
|
||||
|
||||
@ -458,7 +459,10 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
public float testFieldFloat { get; set; }
|
||||
public decimal testFieldDecimal { get; set; }
|
||||
public TimeSpan testFieldTimeSpan { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime testFieldDateTime { get; set; }
|
||||
|
||||
public byte[] testFieldBytes { get; set; }
|
||||
public string testFieldString { get; set; }
|
||||
public Guid testFieldGuid { get; set; }
|
||||
@ -476,7 +480,10 @@ namespace FreeSql.Tests.MySqlConnector
|
||||
public float? testFieldFloatNullable { get; set; }
|
||||
public decimal? testFieldDecimalNullable { get; set; }
|
||||
public TimeSpan? testFieldTimeSpanNullable { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? testFieldDateTimeNullable { get; set; }
|
||||
|
||||
public Guid? testFieldGuidNullable { get; set; }
|
||||
|
||||
public MygisPoint testFieldPoint { get; set; }
|
||||
|
@ -36,6 +36,7 @@ namespace FreeSql.Tests.MySql
|
||||
|
||||
public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
}
|
||||
|
||||
@ -464,7 +465,10 @@ namespace FreeSql.Tests.MySql
|
||||
public float testFieldFloat { get; set; }
|
||||
public decimal testFieldDecimal { get; set; }
|
||||
public TimeSpan testFieldTimeSpan { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime testFieldDateTime { get; set; }
|
||||
|
||||
public byte[] testFieldBytes { get; set; }
|
||||
public string testFieldString { get; set; }
|
||||
public Guid testFieldGuid { get; set; }
|
||||
@ -482,7 +486,10 @@ namespace FreeSql.Tests.MySql
|
||||
public float? testFieldFloatNullable { get; set; }
|
||||
public decimal? testFieldDecimalNullable { get; set; }
|
||||
public TimeSpan? testFieldTimeSpanNullable { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? testFieldDateTimeNullable { get; set; }
|
||||
|
||||
public Guid? testFieldGuidNullable { get; set; }
|
||||
|
||||
public MygisPoint testFieldPoint { get; set; }
|
||||
|
@ -36,6 +36,7 @@ namespace FreeSql.Tests.Oracle
|
||||
|
||||
public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
}
|
||||
|
||||
@ -222,8 +223,12 @@ namespace FreeSql.Tests.Oracle
|
||||
public float Float { get; set; }
|
||||
public decimal Decimal { get; set; }
|
||||
public TimeSpan TimeSpan { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime DateTime { get; set; }
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime DateTimeOffSet { get; set; }
|
||||
|
||||
public byte[] Bytes { get; set; }
|
||||
public string String { get; set; }
|
||||
public Guid Guid { get; set; }
|
||||
@ -241,8 +246,12 @@ namespace FreeSql.Tests.Oracle
|
||||
public float? FloatNullable { get; set; }
|
||||
public decimal? DecimalNullable { get; set; }
|
||||
public TimeSpan? TimeSpanNullable { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? DateTimeNullable { get; set; }
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? DateTimeOffSetNullable { get; set; }
|
||||
|
||||
public Guid? GuidNullable { get; set; }
|
||||
|
||||
public TableAllTypeEnumType1 Enum1 { get; set; }
|
||||
|
@ -43,6 +43,7 @@ namespace FreeSql.Tests.PostgreSQL
|
||||
|
||||
public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
}
|
||||
|
||||
@ -367,7 +368,10 @@ namespace FreeSql.Tests.PostgreSQL
|
||||
public float testFieldFloat { get; set; }
|
||||
public decimal testFieldDecimal { get; set; }
|
||||
public TimeSpan testFieldTimeSpan { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime testFieldDateTime { get; set; }
|
||||
|
||||
public byte[] testFieldBytes { get; set; }
|
||||
public string testFieldString { get; set; }
|
||||
public Guid testFieldGuid { get; set; }
|
||||
@ -397,7 +401,10 @@ namespace FreeSql.Tests.PostgreSQL
|
||||
public float? testFieldFloatNullable { get; set; }
|
||||
public decimal? testFieldDecimalNullable { get; set; }
|
||||
public TimeSpan? testFieldTimeSpanNullable { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? testFieldDateTimeNullable { get; set; }
|
||||
|
||||
public Guid? testFieldGuidNullable { get; set; }
|
||||
public NpgsqlPoint? testFieldNpgsqlPointNullable { get; set; }
|
||||
public NpgsqlLine? testFieldNpgsqlLineNullable { get; set; }
|
||||
|
@ -37,6 +37,7 @@ namespace FreeSql.Tests.SqlServer
|
||||
|
||||
public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
}
|
||||
|
||||
@ -159,7 +160,7 @@ namespace FreeSql.Tests.SqlServer
|
||||
var sqlTestUpdate = g.sqlserver.Update<TableAllType>().SetSource(item3NP).NoneParameter().ToSql();
|
||||
|
||||
var item3 = insert.AppendData(item2).ExecuteInserted();
|
||||
var newitem2 = select.Where(a => a.Id == item2.Id).ToOne();
|
||||
var newitem2 = select.Where(a => a.Id == item3NP[0].Id).ToOne();
|
||||
|
||||
var items = select.ToList();
|
||||
}
|
||||
@ -344,8 +345,12 @@ namespace FreeSql.Tests.SqlServer
|
||||
public float testFieldFloat { get; set; }
|
||||
public decimal testFieldDecimal { get; set; }
|
||||
public TimeSpan testFieldTimeSpan { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime testFieldDateTime { get; set; }
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTimeOffset testFieldDateTimeOffset { get; set; }
|
||||
|
||||
public byte[] testFieldBytes { get; set; }
|
||||
public string testFieldString { get; set; }
|
||||
public Guid testFieldGuid { get; set; }
|
||||
@ -363,8 +368,12 @@ namespace FreeSql.Tests.SqlServer
|
||||
public float? testFieldFloatNullable { get; set; }
|
||||
public decimal? testFieldDecimalNullable { get; set; }
|
||||
public TimeSpan? testFieldTimeSpanNullable { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? testFieldDateTimeNullable { get; set; }
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTimeOffset? testFieldDateTimeNullableOffset { get; set; }
|
||||
|
||||
public Guid? testFieldGuidNullable { get; set; }
|
||||
|
||||
public TableAllTypeEnumType1 testFieldEnum1 { get; set; }
|
||||
|
@ -36,6 +36,7 @@ namespace FreeSql.Tests.Sqlite
|
||||
|
||||
public string <EFBFBD><EFBFBD><EFBFBD><EFBFBD> { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD> { get; set; }
|
||||
}
|
||||
|
||||
@ -262,8 +263,12 @@ namespace FreeSql.Tests.Sqlite
|
||||
public float Float { get; set; }
|
||||
public decimal Decimal { get; set; }
|
||||
public TimeSpan TimeSpan { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime DateTime { get; set; }
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime DateTimeOffSet { get; set; }
|
||||
|
||||
public byte[] Bytes { get; set; }
|
||||
public string String { get; set; }
|
||||
public Guid Guid { get; set; }
|
||||
@ -281,8 +286,12 @@ namespace FreeSql.Tests.Sqlite
|
||||
public float? FloatNullable { get; set; }
|
||||
public decimal? DecimalNullable { get; set; }
|
||||
public TimeSpan? TimeSpanNullable { get; set; }
|
||||
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? DateTimeNullable { get; set; }
|
||||
[Column(ServerTime = DateTimeKind.Local)]
|
||||
public DateTime? DateTimeOffSetNullable { get; set; }
|
||||
|
||||
public Guid? GuidNullable { get; set; }
|
||||
|
||||
public TableAllTypeEnumType1 Enum1 { get; set; }
|
||||
|
@ -670,10 +670,10 @@ namespace FreeSql.Tests
|
||||
.From<Templates>((a, b) => a.InnerJoin(aa => aa.TemplatesId
|
||||
== b.Id2))
|
||||
.GroupBy((a, b) => b.Code)
|
||||
.ToSql(a => new
|
||||
.ToSql(a => new NewsArticleDto
|
||||
{
|
||||
a.Key,
|
||||
sss = a.Sum(a.Value.Item1.OptionsEntity04)
|
||||
ArticleTitle = a.Key,
|
||||
ChannelId = a.Sum(a.Value.Item1.OptionsEntity04)
|
||||
});
|
||||
|
||||
var testgrpsql2 = g.sqlite.Select<TaskBuild>()
|
||||
|
@ -183,9 +183,44 @@ namespace FreeSql.Tests
|
||||
public string varchar_notnull { get; set; }
|
||||
}
|
||||
|
||||
public class TestIgnoreDefaultValue {
|
||||
public Guid Id { get; set; }
|
||||
|
||||
[Column(IsIgnore = true)]
|
||||
public double? quantity { get; set; } = 100f;
|
||||
|
||||
public DateTime ct1 { get; set; }
|
||||
public DateTime? ct2 { get; set; }
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Test02()
|
||||
{
|
||||
var serverTime = g.pgsql.Select<TestIgnoreDefaultValue>().Limit(1).First(a => DateTime.UtcNow);
|
||||
var timeOffset = DateTime.UtcNow.Subtract(serverTime); //减去数据库时间
|
||||
|
||||
g.pgsql.Aop.AuditValue += new EventHandler<Aop.AuditValueEventArgs>((_, e) =>
|
||||
{
|
||||
if (e.Column.Attribute.MapType.NullableTypeOrThis() == typeof(DateTime))
|
||||
{
|
||||
if (e.Value == null || (DateTime)e.Value == default(DateTime))
|
||||
{
|
||||
e.Value = DateTime.Now.Subtract(timeOffset);
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
g.pgsql.Delete<TestIgnoreDefaultValue>().Where("1=1").ExecuteAffrows();
|
||||
g.pgsql.GetRepository<TestIgnoreDefaultValue>().Insert(new TestIgnoreDefaultValue[]
|
||||
{
|
||||
new TestIgnoreDefaultValue(),
|
||||
new TestIgnoreDefaultValue(),
|
||||
new TestIgnoreDefaultValue()
|
||||
});
|
||||
var testttt = g.pgsql.Select<TestIgnoreDefaultValue>().Limit(10).ToList();
|
||||
|
||||
var slsksd = g.mysql.Update<UserLike>().SetSource(new UserLike { Id = Guid.NewGuid(), CreateUserId = 1000, SubjectId = Guid.NewGuid() })
|
||||
.UpdateColumns(a => new
|
||||
{
|
||||
|
Reference in New Issue
Block a user