- 优化 ToSql FieldAliasOptions.AsProperty 别名问题;#467

This commit is contained in:
28810
2020-09-22 15:33:45 +08:00
parent 11402eb8fa
commit 3c812d4305
4 changed files with 270 additions and 161 deletions

View File

@ -9,6 +9,21 @@
编号
</summary>
</member>
<member name="P:FreeSql.Tests.Issues._467.PayOrder.Money">
<summary>
收款金额
</summary>
</member>
<member name="P:FreeSql.Tests.Issues._467.PayOrder.OrderTime">
<summary>
订单时间
</summary>
</member>
<member name="P:FreeSql.Tests.Issues._467.PayOrder.PayOrderId">
<summary>
支付Id
</summary>
</member>
<member name="M:FreeSql.Tests.MySql.MySqlCodeFirstTest.Tb_alltype.Save">
<summary>
保存或添加,如果主键有值则尝试 Update如果影响的行为 0 则尝试 Insert

View File

@ -0,0 +1,65 @@
using FreeSql.DataAnnotations;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Threading;
using Xunit;
namespace FreeSql.Tests.Issues
{
public class _467
{
[Fact]
public void SelectTest()
{
IFreeSql fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=1")
//.UseNameConvert(FreeSql.Internal.NameConvertType.ToUpper)
.UseGenerateCommandParameterWithLambda(true)
.UseAutoSyncStructure(true)
.UseMonitorCommand(cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText))
.Build();
var orderSql = fsql
.Select<PayOrder>()
.As(nameof(PayOrder).ToLower())
.Where(p => p.Status == 1)
.ToSql(p => new
{
p.PayOrderId,
p.Money,
p.OrderTime
}, FreeSql.FieldAliasOptions.AsProperty);
Assert.Equal(@"SELECT payorder.""PayOrderId"", payorder.""Money"", payorder.""OrderTime""
FROM ""pay_order"" payorder
WHERE (payorder.""Status"" = 1)", orderSql);
}
[JsonObject(MemberSerialization.OptIn), Table(Name = "pay_order", DisableSyncStructure = true)]
public partial class PayOrder
{
/// <summary>
/// 收款金额
/// </summary>
[JsonProperty, Column(DbType = "money")]
public decimal Money { get; set; }
/// <summary>
/// 订单时间
/// </summary>
[JsonProperty, Column(DbType = "timestamptz")]
public DateTime? OrderTime { get; set; }
/// <summary>
/// 支付Id
/// </summary>
[JsonProperty, Column(StringLength = 50)]
public string PayOrderId { get; set; }
public int Status { get; set; }
}
}
}