mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 修复 MySql 子查询 Enum MapType(int) 表达式判断解析 bug;#1118
This commit is contained in:
parent
0ea5c5d966
commit
2234012993
@ -24,6 +24,126 @@
|
||||
会员ID
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityConfig.Id">
|
||||
<summary>
|
||||
<para> </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityConfig.SalesmanId">
|
||||
<summary>
|
||||
<para>推销员Id </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityConfig.Type">
|
||||
<summary>
|
||||
<para>洗车卡业务类型:0=自助卡 1=自动卡 2=通用卡[BaseCardBussinessType] </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityConfig.DivideAmount">
|
||||
<summary>
|
||||
<para>收益 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityConfig.AddTime">
|
||||
<summary>
|
||||
<para> </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityConfig.UpdateTime">
|
||||
<summary>
|
||||
<para> </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.Id">
|
||||
<summary>
|
||||
<para> </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.SalesmanActivityConfigId">
|
||||
<summary>
|
||||
<para>推销员活动配置Id </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.ActivityType">
|
||||
<summary>
|
||||
<para>洗车卡业务类型:0=自助卡 1=自动卡 2=通用卡[BaseCardBussinessType] </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.SalesmanId">
|
||||
<summary>
|
||||
<para>推销员Id </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.AccountId">
|
||||
<summary>
|
||||
<para>用户Id </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.OrderNo">
|
||||
<summary>
|
||||
<para>订单编号 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.PayAmount">
|
||||
<summary>
|
||||
<para>支付金额 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.PayMethod">
|
||||
<summary>
|
||||
<para>支付方式 0、余额支付 1、微信支付 2、支付宝 99、无 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.PayStatus">
|
||||
<summary>
|
||||
<para>支付状态:1、待付款,5、已完成,10、关闭,15、退款中,20、退款完成 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.PayTime">
|
||||
<summary>
|
||||
<para>支付时间 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.IsActivated">
|
||||
<summary>
|
||||
<para>是否已激活 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.ActivatedTime">
|
||||
<summary>
|
||||
<para>激活时间 </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.CardOrderId">
|
||||
<summary>
|
||||
<para>购买的365年卡Id </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.AddTime">
|
||||
<summary>
|
||||
<para> </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._1118.SalesmanActivityOrder.UpdateTime">
|
||||
<summary>
|
||||
<para> </para>
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Tests.Issues._1118.BaseCardBussinessType.ZiZhuKa">
|
||||
<summary>
|
||||
自助卡
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Tests.Issues._1118.BaseCardBussinessType.ZiDongKa">
|
||||
<summary>
|
||||
自动卡
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:FreeSql.Tests.Issues._1118.BaseCardBussinessType.TongYongKa">
|
||||
<summary>
|
||||
通用卡
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Tests.Issues._467.PayOrder.Money">
|
||||
<summary>
|
||||
收款金额
|
||||
|
186
FreeSql.Tests/FreeSql.Tests/Issues/1118.cs
Normal file
186
FreeSql.Tests/FreeSql.Tests/Issues/1118.cs
Normal file
@ -0,0 +1,186 @@
|
||||
using FreeSql.DataAnnotations;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using Xunit;
|
||||
|
||||
namespace FreeSql.Tests.Issues
|
||||
{
|
||||
public class _1118
|
||||
{
|
||||
[Fact]
|
||||
public void PropertyType()
|
||||
{
|
||||
var fsql = g.mysql;
|
||||
|
||||
var activityPeopleCountList = fsql.Select<SalesmanActivityConfig>()
|
||||
.Where(a => a.SalesmanId == "xxx")
|
||||
.ToList(a => new
|
||||
{
|
||||
Type = a.Type,
|
||||
Count = fsql.Select<SalesmanActivityOrder>()
|
||||
.Where(o => o.SalesmanId == a.SalesmanId)
|
||||
.Where(o => a.Type == o.ActivityType)//报错ArgumentException: Requested value 'a.`Type`' was not found.
|
||||
//.Where("o.ActivityType = a.Type", null)//正常
|
||||
.Where(o => o.PayStatus == SalesmanActivityOrderPayStatusEnum.YiWanCheng)
|
||||
.Count(),
|
||||
});
|
||||
}
|
||||
|
||||
[JsonObject(MemberSerialization.OptIn), Table(Name = "salesman_activity_config")]
|
||||
public partial class SalesmanActivityConfig
|
||||
{
|
||||
/// <summary>
|
||||
///<para> </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "Id", DbType = "char(32)", IsNullable = false, IsPrimary = true)]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>推销员Id </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "SalesmanId", DbType = "char(32)", IsNullable = false)]
|
||||
public string SalesmanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>洗车卡业务类型:0=自助卡 1=自动卡 2=通用卡[BaseCardBussinessType] </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "Type", DbType = "int", IsNullable = false)]
|
||||
public BaseCardBussinessType Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>收益 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "DivideAmount", DbType = "decimal(10,2)", IsNullable = false)]
|
||||
public decimal DivideAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para> </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "AddTime", DbType = "datetime", IsNullable = false)]
|
||||
public DateTime AddTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para> </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "UpdateTime", DbType = "datetime", IsNullable = true)]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
|
||||
}
|
||||
[JsonObject(MemberSerialization.OptIn), Table(Name = "salesman_activity_order")]
|
||||
public partial class SalesmanActivityOrder
|
||||
{
|
||||
/// <summary>
|
||||
///<para> </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "Id", DbType = "char(32)", IsNullable = false, IsPrimary = true)]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>推销员活动配置Id </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "SalesmanActivityConfigId", DbType = "char(32)", IsNullable = false)]
|
||||
public string SalesmanActivityConfigId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>洗车卡业务类型:0=自助卡 1=自动卡 2=通用卡[BaseCardBussinessType] </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "ActivityType", DbType = "int", IsNullable = false)]
|
||||
public BaseCardBussinessType ActivityType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>推销员Id </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "SalesmanId", DbType = "char(32)", IsNullable = false)]
|
||||
public string SalesmanId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>用户Id </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "AccountId", DbType = "char(32)", IsNullable = false)]
|
||||
public string AccountId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>订单编号 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "OrderNo", DbType = "varchar(100)", IsNullable = false)]
|
||||
public string OrderNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>支付金额 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "PayAmount", DbType = "decimal(10,2)", IsNullable = false)]
|
||||
public decimal PayAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>支付方式 0、余额支付 1、微信支付 2、支付宝 99、无 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "PayMethod", DbType = "int", IsNullable = false)]
|
||||
public SalesmanActivityOrderPayMethodEnum PayMethod { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>支付状态:1、待付款,5、已完成,10、关闭,15、退款中,20、退款完成 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "PayStatus", DbType = "int", IsNullable = false)]
|
||||
public SalesmanActivityOrderPayStatusEnum PayStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>支付时间 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "PayTime", DbType = "datetime", IsNullable = true)]
|
||||
public DateTime? PayTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>是否已激活 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "IsActivated", DbType = "bit(1)", IsNullable = false)]
|
||||
public bool IsActivated { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>激活时间 </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "ActivatedTime", DbType = "datetime", IsNullable = true)]
|
||||
public DateTime? ActivatedTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para>购买的365年卡Id </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "CardOrderId", DbType = "char(32)", IsNullable = true)]
|
||||
public string CardOrderId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para> </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "AddTime", DbType = "datetime", IsNullable = false)]
|
||||
public DateTime AddTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///<para> </para>
|
||||
/// </summary>
|
||||
[JsonProperty, Column(Name = "UpdateTime", DbType = "datetime", IsNullable = true)]
|
||||
public DateTime? UpdateTime { get; set; }
|
||||
}
|
||||
|
||||
public enum SalesmanActivityOrderPayMethodEnum { Wepay, Alipay, Bank }
|
||||
public enum SalesmanActivityOrderPayStatusEnum { Pending, Compelte, YiWanCheng }
|
||||
public enum BaseCardBussinessType
|
||||
{
|
||||
/// <summary>
|
||||
/// 自助卡
|
||||
/// </summary>
|
||||
[Description("自助卡")]
|
||||
ZiZhuKa = 0,
|
||||
/// <summary>
|
||||
/// 自动卡
|
||||
/// </summary>
|
||||
[Description("自动卡")]
|
||||
ZiDongKa = 1,
|
||||
/// <summary>
|
||||
/// 通用卡
|
||||
/// </summary>
|
||||
[Description("通用卡")]
|
||||
TongYongKa = 2,
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -648,8 +648,12 @@ namespace FreeSql.Internal
|
||||
{
|
||||
var enumType = leftMapColumn.CsType.NullableTypeOrThis();
|
||||
if (enumType.IsEnum)
|
||||
{
|
||||
rightMapColumn = SearchColumnByField(tsc._tables, tsc.currentTable, right);
|
||||
if (rightMapColumn != null)
|
||||
right = formatSql(Enum.Parse(enumType, right.StartsWith("N'") ? right.Substring(1).Trim('\'') : right.Trim('\'')), leftMapColumn.Attribute.MapType, leftMapColumn, tsc.dbParams);
|
||||
}
|
||||
}
|
||||
if (leftMapColumn == null)
|
||||
{
|
||||
rightMapColumn = SearchColumnByField(tsc._tables, tsc.currentTable, right);
|
||||
|
Loading…
x
Reference in New Issue
Block a user