Skip to content

Commit 3c812d4

Browse files
2881028810
authored andcommitted
- 优化 ToSql FieldAliasOptions.AsProperty 别名问题;#467
1 parent 11402eb commit 3c812d4

File tree

4 files changed

+270
-161
lines changed

4 files changed

+270
-161
lines changed

FreeSql.Tests/FreeSql.Tests/FreeSql.Tests.xml

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
using FreeSql.DataAnnotations;
2+
using Newtonsoft.Json;
3+
using System;
4+
using System.Collections.Generic;
5+
using System.Diagnostics;
6+
using System.Text;
7+
using System.Threading;
8+
using Xunit;
9+
10+
namespace FreeSql.Tests.Issues
11+
{
12+
public class _467
13+
{
14+
[Fact]
15+
public void SelectTest()
16+
{
17+
IFreeSql fsql = new FreeSql.FreeSqlBuilder()
18+
.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=1")
19+
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
20+
.UseGenerateCommandParameterWithLambda(true)
21+
.UseAutoSyncStructure(true)
22+
.UseMonitorCommand(cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText))
23+
.Build();
24+
25+
var orderSql = fsql
26+
.Select<PayOrder>()
27+
.As(nameof(PayOrder).ToLower())
28+
.Where(p => p.Status == 1)
29+
.ToSql(p => new
30+
{
31+
p.PayOrderId,
32+
p.Money,
33+
p.OrderTime
34+
}, FreeSql.FieldAliasOptions.AsProperty);
35+
36+
Assert.Equal(@"SELECT payorder.""PayOrderId"", payorder.""Money"", payorder.""OrderTime""
37+
FROM ""pay_order"" payorder
38+
WHERE (payorder.""Status"" = 1)", orderSql);
39+
}
40+
41+
[JsonObject(MemberSerialization.OptIn), Table(Name = "pay_order", DisableSyncStructure = true)]
42+
public partial class PayOrder
43+
{
44+
/// <summary>
45+
/// 收款金额
46+
/// </summary>
47+
[JsonProperty, Column(DbType = "money")]
48+
public decimal Money { get; set; }
49+
50+
/// <summary>
51+
/// 订单时间
52+
/// </summary>
53+
[JsonProperty, Column(DbType = "timestamptz")]
54+
public DateTime? OrderTime { get; set; }
55+
56+
/// <summary>
57+
/// 支付Id
58+
/// </summary>
59+
[JsonProperty, Column(StringLength = 50)]
60+
public string PayOrderId { get; set; }
61+
62+
public int Status { get; set; }
63+
}
64+
}
65+
}

0 commit comments

Comments
 (0)