mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 修复 FromQuery ToList 读取失败的 bug;#1215
This commit is contained in:
		@@ -800,14 +800,5 @@
 | 
				
			|||||||
            <param name="that"></param>
 | 
					            <param name="that"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
        <member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
 | 
					 | 
				
			||||||
            <summary>
 | 
					 | 
				
			||||||
            批量注入 Repository,可以参考代码自行调整
 | 
					 | 
				
			||||||
            </summary>
 | 
					 | 
				
			||||||
            <param name="services"></param>
 | 
					 | 
				
			||||||
            <param name="globalDataFilter"></param>
 | 
					 | 
				
			||||||
            <param name="assemblies"></param>
 | 
					 | 
				
			||||||
            <returns></returns>
 | 
					 | 
				
			||||||
        </member>
 | 
					 | 
				
			||||||
    </members>
 | 
					    </members>
 | 
				
			||||||
</doc>
 | 
					</doc>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
using FreeSql.DataAnnotations;
 | 
					using FreeSql.DataAnnotations;
 | 
				
			||||||
using System;
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
using System.Diagnostics;
 | 
					using System.Diagnostics;
 | 
				
			||||||
using Xunit;
 | 
					using Xunit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -117,7 +118,37 @@ RIGHT JOIN (
 | 
				
			|||||||
    WHERE (a.[RefQuantity] < a.[Quantity]) ) htb ON a.[Id] = htb.[Id] 
 | 
					    WHERE (a.[RefQuantity] < a.[Quantity]) ) htb ON a.[Id] = htb.[Id] 
 | 
				
			||||||
ORDER BY a.[Date] DESC", sql3);
 | 
					ORDER BY a.[Date] DESC", sql3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity1))
 | 
					
 | 
				
			||||||
 | 
					            fsql.Delete<BhEntity1>().Where("1=1").ExecuteAffrows();
 | 
				
			||||||
 | 
					            fsql.Delete<BiEntity1>().Where("1=1").ExecuteAffrows();
 | 
				
			||||||
 | 
					            fsql.Delete<BiEntity2>().Where("1=1").ExecuteAffrows();
 | 
				
			||||||
 | 
					            var bhid1 = Guid.NewGuid();
 | 
				
			||||||
 | 
					            var bhid2 = Guid.NewGuid();
 | 
				
			||||||
 | 
					            var bhid3 = Guid.NewGuid();
 | 
				
			||||||
 | 
					            fsql.Insert(new[] {
 | 
				
			||||||
 | 
					                new BhEntity1 { Id = bhid1, Date = DateTime.Parse("2022-08-16"), IsDeleted = false, No = "20220816_001" },
 | 
				
			||||||
 | 
					                new BhEntity1 { Id = bhid2, Date = DateTime.Parse("2022-08-17"), IsDeleted = false, No = "20220817_002" },
 | 
				
			||||||
 | 
					                new BhEntity1 { Id = bhid3, Date = DateTime.Parse("2022-08-18"), IsDeleted = false, No = "20220818_003" }
 | 
				
			||||||
 | 
					            }).ExecuteAffrows();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var biid1 = Guid.NewGuid();
 | 
				
			||||||
 | 
					            var biid2 = Guid.NewGuid();
 | 
				
			||||||
 | 
					            var biid3 = Guid.NewGuid();
 | 
				
			||||||
 | 
					            var biid4 = Guid.NewGuid();
 | 
				
			||||||
 | 
					            fsql.Insert(new[] {
 | 
				
			||||||
 | 
					                new BiEntity1 { Id = biid1, HeadId = bhid1, GoodsId = 1, IsDeleted = false, Quantity = 1110, RefHeadId = bhid1, RefItemId = bhid1 },
 | 
				
			||||||
 | 
					                new BiEntity1 { Id = biid2, HeadId = bhid1, GoodsId = 2, IsDeleted = false, Quantity = 1111, RefHeadId = bhid1, RefItemId = bhid1 },
 | 
				
			||||||
 | 
					                new BiEntity1 { Id = biid3, HeadId = bhid2, GoodsId = 3, IsDeleted = false, Quantity = 1112, RefHeadId = bhid2, RefItemId = bhid2 },
 | 
				
			||||||
 | 
					                new BiEntity1 { Id = biid4, HeadId = bhid3, GoodsId = 4, IsDeleted = false, Quantity = 1113, RefHeadId = bhid3, RefItemId = bhid3 },
 | 
				
			||||||
 | 
					            }).ExecuteAffrows();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            fsql.Insert(new[] {
 | 
				
			||||||
 | 
					                new BiEntity2 { Id = Guid.NewGuid(), HeadId = bhid1, GoodsId = 11, IsDeleted = false, Quantity = 110, RefHeadId = bhid1, RefItemId = biid1 },
 | 
				
			||||||
 | 
					                new BiEntity2 { Id = Guid.NewGuid(), HeadId = bhid1, GoodsId = 12, IsDeleted = false, Quantity = 111, RefHeadId = bhid1, RefItemId = biid1 },
 | 
				
			||||||
 | 
					                new BiEntity2 { Id = Guid.NewGuid(), HeadId = bhid2, GoodsId = 13, IsDeleted = false, Quantity = 112, RefHeadId = bhid2, RefItemId = biid2 },
 | 
				
			||||||
 | 
					                new BiEntity2 { Id = Guid.NewGuid(), HeadId = bhid3, GoodsId = 14, IsDeleted = false, Quantity = 113, RefHeadId = bhid3, RefItemId = biid3 },
 | 
				
			||||||
 | 
					            }).ExecuteAffrows();
 | 
				
			||||||
 | 
					            var list1 = fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity1))
 | 
				
			||||||
                .FromQuery(
 | 
					                .FromQuery(
 | 
				
			||||||
                    fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity1)).Where(bh => bh.IsDeleted == false)
 | 
					                    fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity1)).Where(bh => bh.IsDeleted == false)
 | 
				
			||||||
                        .FromQuery(fsql.Select<BaseItemEntity>().AsType(typeof(BiEntity1)).As("bi").Where(bi => bi.IsDeleted == false))
 | 
					                        .FromQuery(fsql.Select<BaseItemEntity>().AsType(typeof(BiEntity1)).As("bi").Where(bi => bi.IsDeleted == false))
 | 
				
			||||||
@@ -136,7 +167,128 @@ ORDER BY a.[Date] DESC", sql3);
 | 
				
			|||||||
                )
 | 
					                )
 | 
				
			||||||
                .RightJoin(v => v.t1.Id == v.t2.Id)
 | 
					                .RightJoin(v => v.t1.Id == v.t2.Id)
 | 
				
			||||||
                .OrderByDescending(v => v.t1.Date)
 | 
					                .OrderByDescending(v => v.t1.Date)
 | 
				
			||||||
 | 
					                .ToList(v => v.t1);
 | 
				
			||||||
 | 
					            Assert.Equal(3, list1.Count);
 | 
				
			||||||
 | 
					            Assert.Equal(DateTime.Parse("2022-08-18"), list1[0].Date);
 | 
				
			||||||
 | 
					            Assert.Equal(bhid3, list1[0].Id);
 | 
				
			||||||
 | 
					            Assert.False(list1[0].IsDeleted);
 | 
				
			||||||
 | 
					            Assert.Equal("20220818_003", list1[0].No);
 | 
				
			||||||
 | 
					            Assert.Equal(DateTime.Parse("2022-08-17"), list1[1].Date);
 | 
				
			||||||
 | 
					            Assert.Equal(bhid2, list1[1].Id);
 | 
				
			||||||
 | 
					            Assert.False(list1[1].IsDeleted);
 | 
				
			||||||
 | 
					            Assert.Equal("20220817_002", list1[1].No);
 | 
				
			||||||
 | 
					            Assert.Equal(DateTime.Parse("2022-08-16"), list1[2].Date);
 | 
				
			||||||
 | 
					            Assert.Equal(bhid1, list1[2].Id);
 | 
				
			||||||
 | 
					            Assert.False(list1[2].IsDeleted);
 | 
				
			||||||
 | 
					            Assert.Equal("20220816_001", list1[2].No);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            fsql.Delete<BhEntity3>("1=1").ExecuteAffrows();
 | 
				
			||||||
 | 
					            fsql.Delete<BiEntity1>("1=1").ExecuteAffrows();
 | 
				
			||||||
 | 
					            fsql.Delete<BiEntity2>("1=1").ExecuteAffrows();
 | 
				
			||||||
 | 
					            var bhSource = new List<BhEntity3>()
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f41"),No="BH001",Date=new DateTime(2022,08,16),UserField1="BH1UF001",UserField2="BH1UF002",UserField3="BH1UF003" },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f42"),No="BH002",Date=new DateTime(2022,08,16),UserField1="BH2UF001",UserField2="BH2UF002",UserField3="BH2UF003" },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f43"),No="BH003",Date=new DateTime(2022,08,16),UserField1="BH3UF001",UserField2="BH3UF002",UserField3="BH3UF003" },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f44"),No="BH004",Date=new DateTime(2022,08,16),UserField1="BH4UF001",UserField2="BH4UF002",UserField3="BH4UF003" },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f45"),No="BH005",Date=new DateTime(2022,08,16),UserField1="BH5UF001",UserField2="BH5UF002",UserField3="BH5UF003" },
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            var bi1Source = new List<BiEntity1>()
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d971"),HeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f41"),GoodsId=1,Quantity=100 },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d972"),HeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f42"),GoodsId=2,Quantity=100 },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d973"),HeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f43"),GoodsId=3,Quantity=100 },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d974"),HeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f44"),GoodsId=4,Quantity=100 },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d975"),HeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f45"),GoodsId=5,Quantity=100 },
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            var bi2Source = new List<BiEntity2>()
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62d02b69-8838-2bf0-009d-adcb760ec361"),HeadId=Guid.Parse("62d04bb1-e53d-1ae8-00d9-82bf2d58f631"),GoodsId=1,Quantity=10,RefHeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f41"),RefItemId=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d971") },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62d02b69-8838-2bf0-009d-adcb760ec362"),HeadId=Guid.Parse("62d04bb1-e53d-1ae8-00d9-82bf2d58f632"),GoodsId=2,Quantity=10,RefHeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f42"),RefItemId=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d972") },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62d02b69-8838-2bf0-009d-adcb760ec363"),HeadId=Guid.Parse("62d04bb1-e53d-1ae8-00d9-82bf2d58f633"),GoodsId=3,Quantity=10,RefHeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f43"),RefItemId=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d973") },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62d02b69-8838-2bf0-009d-adcb760ec364"),HeadId=Guid.Parse("62d04bb1-e53d-1ae8-00d9-82bf2d58f634"),GoodsId=4,Quantity=10,RefHeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f44"),RefItemId=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d974") },
 | 
				
			||||||
 | 
					                new() { Id=Guid.Parse("62d02b69-8838-2bf0-009d-adcb760ec365"),HeadId=Guid.Parse("62d04bb1-e53d-1ae8-00d9-82bf2d58f635"),GoodsId=5,Quantity=10,RefHeadId=Guid.Parse("62b978e5-d97e-6c58-009b-35137f900f45"),RefItemId=Guid.Parse("62c455b6-1b24-a468-00ef-87c86362d975") },
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            fsql.InsertOrUpdate<BhEntity3>().SetSource(bhSource).ExecuteAffrows();
 | 
				
			||||||
 | 
					            fsql.InsertOrUpdate<BiEntity1>().SetSource(bi1Source).ExecuteAffrows();
 | 
				
			||||||
 | 
					            fsql.InsertOrUpdate<BiEntity2>().SetSource(bi2Source).ExecuteAffrows();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var normal = fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity3))
 | 
				
			||||||
 | 
					                .Where(vh => fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity3)).Where(bh => bh.IsDeleted == false)
 | 
				
			||||||
 | 
					                    .FromQuery(fsql.Select<BaseItemEntity>().AsType(typeof(BiEntity1)).As("bi").Where(bi => bi.IsDeleted == false))
 | 
				
			||||||
 | 
					                    .InnerJoin(v => v.t1.Id == v.t2.HeadId)
 | 
				
			||||||
 | 
					                    .WithTempQuery(v => new
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        BillHead = v.t1,
 | 
				
			||||||
 | 
					                        Quantity = v.t2.Quantity,
 | 
				
			||||||
 | 
					                        RefQuantity = fsql.Select<BaseItemEntity>().AsType(typeof(BiEntity2)).As("bi2")
 | 
				
			||||||
 | 
					                            .Where(ti2 => ti2.RefHeadId == v.t2.HeadId && ti2.RefItemId == v.t2.Id)
 | 
				
			||||||
 | 
					                            .Sum(ti2 => ti2.Quantity),
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					                    .Where(v => v.RefQuantity < v.Quantity)
 | 
				
			||||||
 | 
					                    .Distinct()
 | 
				
			||||||
 | 
					                    .ToList(v => v.BillHead.Id).Contains(vh.Id)
 | 
				
			||||||
 | 
					                ).OrderByDescending(vh => vh.Date)
 | 
				
			||||||
                .ToList();
 | 
					                .ToList();
 | 
				
			||||||
 | 
					            Assert.Equal(bhSource[0], normal[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var testCreate = () =>
 | 
				
			||||||
 | 
					                fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity3))
 | 
				
			||||||
 | 
					                    .FromQuery(
 | 
				
			||||||
 | 
					                        fsql.Select<BaseHeadEntity>().AsType(typeof(BhEntity3)).Where(bh => bh.IsDeleted == false)
 | 
				
			||||||
 | 
					                            .FromQuery(fsql.Select<BaseItemEntity>().AsType(typeof(BiEntity1)).As("bi").Where(bi => bi.IsDeleted == false))
 | 
				
			||||||
 | 
					                            .InnerJoin(v => v.t1.Id == v.t2.HeadId)
 | 
				
			||||||
 | 
					                            .WithTempQuery(v => new
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                BillHead = v.t1,
 | 
				
			||||||
 | 
					                                Quantity = v.t2.Quantity,
 | 
				
			||||||
 | 
					                                RefQuantity = fsql.Select<BaseItemEntity>().AsType(typeof(BiEntity2)).As("bi2")
 | 
				
			||||||
 | 
					                                    .Where(ti2 => ti2.RefHeadId == v.t2.HeadId && ti2.RefItemId == v.t2.Id)
 | 
				
			||||||
 | 
					                                    .Sum(ti2 => ti2.Quantity),
 | 
				
			||||||
 | 
					                            })
 | 
				
			||||||
 | 
					                            .Where(v => v.RefQuantity < v.Quantity)
 | 
				
			||||||
 | 
					                            .Distinct()
 | 
				
			||||||
 | 
					                            .WithTempQuery(v => new { v.BillHead.Id })
 | 
				
			||||||
 | 
					                    )
 | 
				
			||||||
 | 
					                    .RightJoin(v => v.t1.Id == v.t2.Id)
 | 
				
			||||||
 | 
					                    .OrderByDescending(v => v.t1.Date);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 测试:只返回基类的字段,实体类的字段丢失
 | 
				
			||||||
 | 
					            var lostFields = testCreate().ToList(v => v.t1);
 | 
				
			||||||
 | 
					            Assert.Equal(5, lostFields.Count);
 | 
				
			||||||
 | 
					            for (var xxx = 0; xxx < lostFields.Count; xxx++)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Assert.NotNull(lostFields[xxx] as BhEntity3);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].Date, lostFields[xxx].Date);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].Id, lostFields[xxx].Id);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].IsDeleted, lostFields[xxx].IsDeleted);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].No, lostFields[xxx].No);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].UserField1, (lostFields[xxx] as BhEntity3).UserField1);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].UserField2, (lostFields[xxx] as BhEntity3).UserField2);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].UserField3, (lostFields[xxx] as BhEntity3).UserField3);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            Assert.Equal(bhSource[0], lostFields[0]);
 | 
				
			||||||
 | 
					            // 测试:直接报类型转换错误
 | 
				
			||||||
 | 
					            lostFields = testCreate().ToList(); 
 | 
				
			||||||
 | 
					            Assert.Equal(5, lostFields.Count);
 | 
				
			||||||
 | 
					            for (var xxx = 0; xxx < lostFields.Count; xxx++)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Assert.NotNull(lostFields[xxx] as BhEntity3);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].Date, lostFields[xxx].Date);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].Id, lostFields[xxx].Id);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].IsDeleted, lostFields[xxx].IsDeleted);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].No, lostFields[xxx].No);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].UserField1, (lostFields[xxx] as BhEntity3).UserField1);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].UserField2, (lostFields[xxx] as BhEntity3).UserField2);
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].UserField3, (lostFields[xxx] as BhEntity3).UserField3);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            var list3 = testCreate().ToList(a => a.t2);
 | 
				
			||||||
 | 
					            Assert.Equal(5, list3.Count);
 | 
				
			||||||
 | 
					            for (var xxx = 0; xxx < list3.Count; xxx++)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                Assert.Equal(bhSource[xxx].Id, list3[xxx].Id);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Fact]
 | 
					        [Fact]
 | 
				
			||||||
@@ -194,6 +346,27 @@ WHERE (a.[RefQuantity] < a.[Quantity])", sql2);
 | 
				
			|||||||
        class BhEntity1 : BaseHeadEntity { }
 | 
					        class BhEntity1 : BaseHeadEntity { }
 | 
				
			||||||
        [Table(Name = "bhe_2")]
 | 
					        [Table(Name = "bhe_2")]
 | 
				
			||||||
        class BhEntity2 : BaseHeadEntity { }
 | 
					        class BhEntity2 : BaseHeadEntity { }
 | 
				
			||||||
 | 
					        [Table(Name = "bhe_3")]
 | 
				
			||||||
 | 
					        class BhEntity3 : BaseHeadEntity
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            [Column(Name = "f_usr_001")]
 | 
				
			||||||
 | 
					            public string UserField1 { get; set; }
 | 
				
			||||||
 | 
					            [Column(Name = "f_usr_002")]
 | 
				
			||||||
 | 
					            public string UserField2 { get; set; }
 | 
				
			||||||
 | 
					            [Column(Name = "f_usr_003")]
 | 
				
			||||||
 | 
					            public string UserField3 { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            public override bool Equals(object obj)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (base.Equals(obj)) return true;
 | 
				
			||||||
 | 
					                var as1 = obj as BhEntity3;
 | 
				
			||||||
 | 
					                if (as1 is null) return false;
 | 
				
			||||||
 | 
					                return base.Id == as1.Id &&
 | 
				
			||||||
 | 
					                    this.UserField1 == as1.UserField1 &&
 | 
				
			||||||
 | 
					                    this.UserField2 == as1.UserField2 &&
 | 
				
			||||||
 | 
					                    this.UserField3 == as1.UserField3;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        abstract class BaseItemEntity : SoftDelete
 | 
					        abstract class BaseItemEntity : SoftDelete
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            public Guid Id { get; set; }
 | 
					            public Guid Id { get; set; }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3331,6 +3331,177 @@
 | 
				
			|||||||
            <param name="parms"></param>
 | 
					            <param name="parms"></param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteConnectTestAsync(System.Int32,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            测试数据库是否连接正确,本方法执行如下命令:<para></para>
 | 
				
			||||||
 | 
					            MySql/SqlServer/PostgreSQL/达梦/人大金仓/神通: SELECT 1<para></para>
 | 
				
			||||||
 | 
					            Oracle: SELECT 1 FROM dual<para></para>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="commandTimeout">命令超时设置(秒)</param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns>true: 成功, false: 失败</returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{FreeSql.Internal.Model.FetchCallbackArgs{System.Data.Common.DbDataReader},System.Threading.Tasks.Task},System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="readerHander"></param>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteReaderAsync(System.Func{FreeSql.Internal.Model.FetchCallbackArgs{System.Data.Common.DbDataReader},System.Threading.Tasks.Task},System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询,ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="readerHander"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteArrayAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteArrayAsync(System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询,ExecuteArrayAsync("select * from user where age > @age", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteDataSetAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteDataSetAsync(System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询,ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteDataTableAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteDataTableAsync(System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            查询,ExecuteDataTableAsync("select * from user where age > @age", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteNonQueryAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            在【主库】执行
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteNonQueryAsync(System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            在【主库】执行,ExecuteNonQueryAsync("delete from user where age > @age", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteScalarAsync(System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            在【主库】执行
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.ExecuteScalarAsync(System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            在【主库】执行,ExecuteScalarAsync("select 1 from user where age > @age", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.QueryAsync``1(System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 })
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <typeparam name="T"></typeparam>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.QueryAsync``1(System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <typeparam name="T"></typeparam>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.QueryAsync``2(System.Data.CommandType,System.String,System.Data.Common.DbParameter[],System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
 | 
					            <typeparam name="T2"></typeparam>
 | 
				
			||||||
 | 
					            <param name="cmdType"></param>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="cmdParms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.IAdo.QueryAsync``2(System.String,System.Object,System.Threading.CancellationToken)">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            执行SQL返回对象集合,Query<User, Address>("select * from user where age > @age; select * from address", new { age = 25 })<para></para>
 | 
				
			||||||
 | 
					            提示:parms 参数还可以传 Dictionary<string, object>
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <typeparam name="T1"></typeparam>
 | 
				
			||||||
 | 
					            <typeparam name="T2"></typeparam>
 | 
				
			||||||
 | 
					            <param name="cmdText"></param>
 | 
				
			||||||
 | 
					            <param name="parms"></param>
 | 
				
			||||||
 | 
					            <param name="cancellationToken"></param>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="E:FreeSql.IAop.ParseExpression">
 | 
					        <member name="E:FreeSql.IAop.ParseExpression">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            可自定义解析表达式
 | 
					            可自定义解析表达式
 | 
				
			||||||
@@ -4354,6 +4525,12 @@
 | 
				
			|||||||
            <param name="timeout">超时</param>
 | 
					            <param name="timeout">超时</param>
 | 
				
			||||||
            <returns></returns>
 | 
					            <returns></returns>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.Internal.ObjectPool.IObjectPool`1.GetAsync">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            获取资源
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <returns></returns>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.Internal.ObjectPool.IObjectPool`1.Return(FreeSql.Internal.ObjectPool.Object{`0},System.Boolean)">
 | 
					        <member name="M:FreeSql.Internal.ObjectPool.IObjectPool`1.Return(FreeSql.Internal.ObjectPool.Object{`0},System.Boolean)">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            使用完毕后,归还资源
 | 
					            使用完毕后,归还资源
 | 
				
			||||||
@@ -4429,6 +4606,12 @@
 | 
				
			|||||||
            </summary>
 | 
					            </summary>
 | 
				
			||||||
            <param name="obj">资源对象</param>
 | 
					            <param name="obj">资源对象</param>
 | 
				
			||||||
        </member>
 | 
					        </member>
 | 
				
			||||||
 | 
					        <member name="M:FreeSql.Internal.ObjectPool.IPolicy`1.OnGetAsync(FreeSql.Internal.ObjectPool.Object{`0})">
 | 
				
			||||||
 | 
					            <summary>
 | 
				
			||||||
 | 
					            从对象池获取对象成功的时候触发,通过该方法统计或初始化对象
 | 
				
			||||||
 | 
					            </summary>
 | 
				
			||||||
 | 
					            <param name="obj">资源对象</param>
 | 
				
			||||||
 | 
					        </member>
 | 
				
			||||||
        <member name="M:FreeSql.Internal.ObjectPool.IPolicy`1.OnReturn(FreeSql.Internal.ObjectPool.Object{`0})">
 | 
					        <member name="M:FreeSql.Internal.ObjectPool.IPolicy`1.OnReturn(FreeSql.Internal.ObjectPool.Object{`0})">
 | 
				
			||||||
            <summary>
 | 
					            <summary>
 | 
				
			||||||
            归还对象给对象池的时候触发
 | 
					            归还对象给对象池的时候触发
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1908,7 +1908,7 @@ namespace FreeSql.Internal
 | 
				
			|||||||
                                        alias2 = $"{alias2}__{mp2.Member.Name}";
 | 
					                                        alias2 = $"{alias2}__{mp2.Member.Name}";
 | 
				
			||||||
                                    find2 = getOrAddTable(tb2tmp, alias2, exp2IsParameter, parmExp2, mp2);
 | 
					                                    find2 = getOrAddTable(tb2tmp, alias2, exp2IsParameter, parmExp2, mp2);
 | 
				
			||||||
                                    alias2 = find2.Alias;
 | 
					                                    alias2 = find2.Alias;
 | 
				
			||||||
                                    tb2 = tb2tmp;
 | 
					                                    tb2 = find2.Table; // tb2tmp; 此处修改解决 Select<BaseEntity>().AsType(Entity1).ToList(a => a)
 | 
				
			||||||
                                }
 | 
					                                }
 | 
				
			||||||
                                if (exp2IsParameter && expStack.Any() == false)
 | 
					                                if (exp2IsParameter && expStack.Any() == false)
 | 
				
			||||||
                                { //附加选择的参数所有列
 | 
					                                { //附加选择的参数所有列
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1240,7 +1240,20 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
        public List<T1> ToList() => ToList(false);
 | 
					        public List<T1> ToList() => ToList(false);
 | 
				
			||||||
        public virtual List<T1> ToList(bool includeNestedMembers)
 | 
					        public virtual List<T1> ToList(bool includeNestedMembers)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (_diymemexpWithTempQuery != null) return this.ToListMapReaderPrivate<T1>((_diymemexpWithTempQuery as WithTempQueryParser)._insideSelectList[0].InsideAf, null);
 | 
					            if (_diymemexpWithTempQuery != null && _diymemexpWithTempQuery is WithTempQueryParser withTempQueryParser)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (withTempQueryParser._outsideTable[0] != _tables[0])
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    var tps = _tables.Select(a =>
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        var tp = Expression.Parameter(a.Table.Type, a.Alias);
 | 
				
			||||||
 | 
					                        a.Parameter = tp;
 | 
				
			||||||
 | 
					                        return tp;
 | 
				
			||||||
 | 
					                    }).ToArray();
 | 
				
			||||||
 | 
					                    return this.InternalToList<T1>(tps[0]);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                return this.ToListMapReaderPrivate<T1>(withTempQueryParser._insideSelectList[0].InsideAf, null);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            if (_selectExpression != null) return this.InternalToList<T1>(_selectExpression);
 | 
					            if (_selectExpression != null) return this.InternalToList<T1>(_selectExpression);
 | 
				
			||||||
            return this.ToListPrivate(includeNestedMembers == false ? this.GetAllFieldExpressionTreeLevel2() : this.GetAllFieldExpressionTreeLevelAll(), null);
 | 
					            return this.ToListPrivate(includeNestedMembers == false ? this.GetAllFieldExpressionTreeLevel2() : this.GetAllFieldExpressionTreeLevelAll(), null);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -1285,7 +1298,20 @@ namespace FreeSql.Internal.CommonProvider
 | 
				
			|||||||
        public Task<List<T1>> ToListAsync(CancellationToken cancellationToken = default) => ToListAsync(false, cancellationToken);
 | 
					        public Task<List<T1>> ToListAsync(CancellationToken cancellationToken = default) => ToListAsync(false, cancellationToken);
 | 
				
			||||||
        public virtual Task<List<T1>> ToListAsync(bool includeNestedMembers = false, CancellationToken cancellationToken = default)
 | 
					        public virtual Task<List<T1>> ToListAsync(bool includeNestedMembers = false, CancellationToken cancellationToken = default)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (_diymemexpWithTempQuery != null) return this.ToListMapReaderPrivateAsync<T1>((_diymemexpWithTempQuery as WithTempQueryParser)._insideSelectList[0].InsideAf, null, cancellationToken);
 | 
					            if (_diymemexpWithTempQuery != null && _diymemexpWithTempQuery is WithTempQueryParser withTempQueryParser)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (withTempQueryParser._outsideTable[0] != _tables[0])
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    var tps = _tables.Select(a =>
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        var tp = Expression.Parameter(a.Table.Type, a.Alias);
 | 
				
			||||||
 | 
					                        a.Parameter = tp;
 | 
				
			||||||
 | 
					                        return tp;
 | 
				
			||||||
 | 
					                    }).ToArray();
 | 
				
			||||||
 | 
					                    return this.InternalToListAsync<T1>(tps[0], cancellationToken);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                return this.ToListMapReaderPrivateAsync<T1>((_diymemexpWithTempQuery as WithTempQueryParser)._insideSelectList[0].InsideAf, null, cancellationToken);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            if (_selectExpression != null) return this.InternalToListAsync<T1>(_selectExpression, cancellationToken);
 | 
					            if (_selectExpression != null) return this.InternalToListAsync<T1>(_selectExpression, cancellationToken);
 | 
				
			||||||
            return this.ToListPrivateAsync(includeNestedMembers == false ? this.GetAllFieldExpressionTreeLevel2() : this.GetAllFieldExpressionTreeLevelAll(), null, cancellationToken);
 | 
					            return this.ToListPrivateAsync(includeNestedMembers == false ? this.GetAllFieldExpressionTreeLevel2() : this.GetAllFieldExpressionTreeLevelAll(), null, cancellationToken);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user