- 增加 实体特性 [Column(ServerTime = DateTimeKind.Utc)] 使用数据库时间执行插入数据;

- 修复 ToList(a => new Dto { .. }) 在使用 GroupBy 之后报错的 bug;
- 修复 注释迁移到数据库,在 asp.net 4.7 无效的问题;
This commit is contained in:
28810
2019-11-25 17:30:36 +08:00
parent 27acd4da08
commit 01b31c095b
49 changed files with 332 additions and 146 deletions

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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>()

View File

@ -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
{