From 33230bbbde460d24aa8400e11c917849577e372e Mon Sep 17 00:00:00 2001 From: Yunus Emre Date: Fri, 25 Apr 2025 14:19:02 +0300 Subject: [PATCH] Fix Clone() in Query. --- QueryBuilder/Include.cs | 11 +++++++++++ QueryBuilder/Query.cs | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/QueryBuilder/Include.cs b/QueryBuilder/Include.cs index e0cbfe02..cb8ff9a2 100644 --- a/QueryBuilder/Include.cs +++ b/QueryBuilder/Include.cs @@ -7,5 +7,16 @@ public class Include public string ForeignKey { get; set; } public string LocalKey { get; set; } public bool IsMany { get; set; } + + public Include Clone() + { + var clone = new Include(); + clone.Name = this.Name; + clone.Query = this.Query.Clone(); + clone.ForeignKey = this.ForeignKey; + clone.LocalKey = this.LocalKey; + clone.IsMany = this.IsMany; + return clone; + } } } diff --git a/QueryBuilder/Query.cs b/QueryBuilder/Query.cs index 8435eca6..6fd41e3e 100755 --- a/QueryBuilder/Query.cs +++ b/QueryBuilder/Query.cs @@ -51,12 +51,12 @@ internal int GetLimit(string engineCode = null) public override Query Clone() { var clone = base.Clone(); - clone.Parent = Parent; + clone.Parent = (Parent as Query)?.Clone(); clone.QueryAlias = QueryAlias; clone.IsDistinct = IsDistinct; clone.Method = Method; - clone.Includes = Includes; - clone.Variables = Variables; + clone.Includes = Includes.Select(i => i.Clone()).ToList(); + clone.Variables = Variables.ToDictionary(); return clone; }