mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 修复 MySql 子查询 Enum MapType(int) 表达式判断解析 bug;#1118
This commit is contained in:
parent
0ea5c5d966
commit
2234012993
@ -24,6 +24,126 @@
|
|||||||
会员ID
|
会员ID
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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">
|
<member name="P:FreeSql.Tests.Issues._467.PayOrder.Money">
|
||||||
<summary>
|
<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();
|
var enumType = leftMapColumn.CsType.NullableTypeOrThis();
|
||||||
if (enumType.IsEnum)
|
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);
|
right = formatSql(Enum.Parse(enumType, right.StartsWith("N'") ? right.Substring(1).Trim('\'') : right.Trim('\'')), leftMapColumn.Attribute.MapType, leftMapColumn, tsc.dbParams);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (leftMapColumn == null)
|
if (leftMapColumn == null)
|
||||||
{
|
{
|
||||||
rightMapColumn = SearchColumnByField(tsc._tables, tsc.currentTable, right);
|
rightMapColumn = SearchColumnByField(tsc._tables, tsc.currentTable, right);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user