diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs index 0470c0f1..e77bb1b4 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs @@ -135,9 +135,35 @@ namespace FreeSql.Tests [Column(Name = "EDII_EDI_ID")] public long EdiId { get; set; } } + public class Song123 + { + public long Id { get; set; } + protected Song123() { } + public Song123(long id) => Id = id; + } + public class Author123 + { + public long Id { get; set; } + public long SongId { get; set; } + public Author123(long id, long songId) + { + Id = id; + SongId = songId; + } + } + [Fact] public void Test03() { + g.sqlite.Delete().Where("1=1").ExecuteAffrows(); + g.sqlite.Delete().Where("1=1").ExecuteAffrows(); + g.sqlite.Insert(new Song123(1)).ExecuteAffrows(); + g.sqlite.Insert(new Author123(11, 1)).ExecuteAffrows(); + var song = g.sqlite.Select() + .From((a, b) => a.InnerJoin(a1 => a1.Id == b.SongId)) + .First((a, b) => a); // throw error + Console.WriteLine(song == null); + g.sqlite.Select().ToList(); var itemId2 = 2; diff --git a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs index c787b5eb..ae4c5929 100644 --- a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs +++ b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs @@ -130,7 +130,7 @@ public static partial class FreeSqlGlobalExtensions if (that == typeof(string)) return default(string); if (that.IsArray) return Array.CreateInstance(that, 0); var ctorParms = that.InternalGetTypeConstructor0OrFirst(false)?.GetParameters(); - if (ctorParms == null || ctorParms.Any() == false) return Activator.CreateInstance(that, null); + if (ctorParms == null || ctorParms.Any() == false) return Activator.CreateInstance(that, true); return Activator.CreateInstance(that, ctorParms.Select(a => a.ParameterType.IsInterface || a.ParameterType.IsAbstract || a.ParameterType == typeof(string) ? null : Activator.CreateInstance(a.ParameterType, null)).ToArray()); } internal static NewExpression InternalNewExpression(this Type that) diff --git a/readme.md b/readme.md index 8b8901fb..8a7fd57e 100644 --- a/readme.md +++ b/readme.md @@ -190,7 +190,7 @@ Elapsed: 00:00:00.6495301; Query Entity Counts: 131072; ORM: Dapper ## πŸ’• Donation -L*y 58ε…ƒγ€θŠ±θŠ± 88ε…ƒγ€ιΊ¦ε…œεΎˆδΉ– 50ε…ƒγ€η½‘η»œζ₯θ€… 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10ε…ƒγ€βŒ’.Helper~..oO 66ε…ƒγ€δΉ ζƒ―δΈŽθ’«δΉ ζƒ― 100元、无名 100ε…ƒγ€θ”‘ζ˜“ε–‹ 88ε…ƒ +L*y 58ε…ƒγ€θŠ±θŠ± 88ε…ƒγ€ιΊ¦ε…œεΎˆδΉ– 50ε…ƒγ€η½‘η»œζ₯θ€… 2000元、John 99.99元、alex 666元、bacongao 36元、无名 100元、Eternity 188元、无名 10ε…ƒγ€βŒ’.Helper~..oO 66ε…ƒγ€δΉ ζƒ―δΈŽθ’«δΉ ζƒ― 100元、无名 100ε…ƒγ€θ”‘ζ˜“ε–‹ 88.88ε…ƒ > Thank you for your donation