Skip to content

Commit f8e4e27

Browse files
2881028810
authored andcommitted
- 修复 IAdo.Query\<object\> 字段名重复的 bug;#162
1 parent c27b3fe commit f8e4e27

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

FreeSql.Tests/FreeSql.Tests/UnitTest3.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,17 @@ public void Test03()
8484

8585
fsql = ib.Get("db3");
8686
fsql.Select<ut3_t1>().Limit(10).ToList();
87+
88+
fsql = g.sqlserver;
89+
fsql.Insert<OrderMain>(new OrderMain { OrderNo = "1001", OrderTime = new DateTime(2019, 12, 01) }).ExecuteAffrows();
90+
fsql.Insert<OrderDetail>(new OrderDetail { OrderNo = "1001", ItemNo = "I001", Qty = 1 }).ExecuteAffrows();
91+
fsql.Insert<OrderDetail>(new OrderDetail { OrderNo = "1001", ItemNo = "I002", Qty = 1 }).ExecuteAffrows();
92+
fsql.Insert<OrderDetail>(new OrderDetail { OrderNo = "1001", ItemNo = "I003", Qty = 1 }).ExecuteAffrows();
93+
fsql.Insert<OrderMain>(new OrderMain { OrderNo = "1002", OrderTime = new DateTime(2019, 12, 02) }).ExecuteAffrows();
94+
fsql.Insert<OrderDetail>(new OrderDetail { OrderNo = "1002", ItemNo = "I011", Qty = 1 }).ExecuteAffrows();
95+
fsql.Insert<OrderDetail>(new OrderDetail { OrderNo = "1002", ItemNo = "I012", Qty = 1 }).ExecuteAffrows();
96+
fsql.Insert<OrderDetail>(new OrderDetail { OrderNo = "1002", ItemNo = "I013", Qty = 1 }).ExecuteAffrows();
97+
fsql.Ado.Query<object>("select * from orderdetail left join ordermain on orderdetail.orderno=ordermain.orderno where ordermain.orderno='1001'");
8798
}
8899

89100
class TestByte
@@ -106,6 +117,19 @@ class ut3_t2
106117
public int id { get; set; }
107118
public string name { get; set; }
108119
}
120+
121+
public class OrderMain
122+
{
123+
public string OrderNo { get; set; }
124+
public DateTime OrderTime { get; set; }
125+
public decimal Amount { get; set; }
126+
}
127+
public class OrderDetail
128+
{
129+
public string OrderNo { get; set; }
130+
public string ItemNo { get; set; }
131+
public decimal Qty { get; set; }
132+
}
109133
}
110134

111135
}

FreeSql/Internal/UtilsExpressionTree.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1331,8 +1331,12 @@ internal static RowInfo ExecuteArrayRowReadClassOrTuple(string flagStr, Type typ
13311331
var expandodic = new Dictionary<string, object>();// (IDictionary<string, object>)expando;
13321332
var fc = row2.FieldCount;
13331333
for (var a = 0; a < fc; a++)
1334-
//expando[row2.GetName(a)] = row2.GetValue(a);
1335-
expandodic.Add(row2.GetName(a), row2.GetValue(a));
1334+
{
1335+
var name = row2.GetName(a);
1336+
//expando[name] = row2.GetValue(a);
1337+
if (expandodic.ContainsKey(name)) continue;
1338+
expandodic.Add(name, row2.GetValue(a));
1339+
}
13361340
//expando = expandodic;
13371341
return new RowInfo(expandodic, fc);
13381342
};

0 commit comments

Comments
 (0)