1313using Newtonsoft . Json ;
1414using Newtonsoft . Json . Linq ;
1515using Npgsql ;
16+ using Org . BouncyCastle . Tls ;
1617using System ;
1718using System . Collections ;
1819using System . Collections . Concurrent ;
@@ -615,11 +616,107 @@ static void Main(string[] args)
615616 //if (cmd.CommandText.StartsWith(""))
616617 } )
617618 . UseLazyLoading ( true )
618- . UseGenerateCommandParameterWithLambda ( true )
619+ // .UseGenerateCommandParameterWithLambda(true)
619620 . Build ( ) ;
620621 BaseEntity . Initialization ( fsql , ( ) => _asyncUow . Value ) ;
621622 #endregion
622623
624+ fsql . Select < User1 > ( ) . WithTempQuery ( a => new { a . Nickname , a . Username } ) . ToChunk ( 10 , e =>
625+ {
626+ foreach ( var item in e . Object )
627+ Console . WriteLine ( item . Nickname ) ;
628+ } ) ;
629+ Task . Run ( async ( ) =>
630+ {
631+ await foreach ( var xxs1 in fsql . Select < User1 > ( ) . WithTempQuery ( a => new { a . Nickname , a . Username } ) . ToChunkAsyncEnumerable ( 10 ) )
632+ {
633+ foreach ( var item in xxs1 )
634+ Console . WriteLine ( item . Nickname ) ;
635+ }
636+ } ) . Wait ( ) ;
637+
638+ var usergroupRepository = fsql . GetAggregateRootRepository < UserGroup > ( ) ;
639+ usergroupRepository . Delete ( a => true ) ;
640+ usergroupRepository . Insert ( new [ ] {
641+ new UserGroup
642+ {
643+ CreateTime = DateTime . Now ,
644+ GroupName = "group1" ,
645+ UpdateTime = DateTime . Now ,
646+ Sort = 1 ,
647+ User1s = new List < User1 >
648+ {
649+ new User1 { Nickname = "nickname11" , Username = "username11" , Description = "desc11" } ,
650+ new User1 { Nickname = "nickname12" , Username = "username12" , Description = "desc12" } ,
651+ new User1 { Nickname = "nickname13" , Username = "username13" , Description = "desc13" } ,
652+ }
653+ } ,
654+ new UserGroup
655+ {
656+ CreateTime = DateTime . Now ,
657+ GroupName = "group2" ,
658+ UpdateTime = DateTime . Now ,
659+ Sort = 2 ,
660+ User1s = new List < User1 >
661+ {
662+ new User1 { Nickname = "nickname21" , Username = "username21" , Description = "desc21" } ,
663+ new User1 { Nickname = "nickname22" , Username = "username22" , Description = "desc22" } ,
664+ new User1 { Nickname = "nickname23" , Username = "username23" , Description = "desc23" } ,
665+ }
666+ } ,
667+ } ) ;
668+ var ugroupFirst = usergroupRepository . Select . First ( ) ;
669+ ugroupFirst . Sort ++ ;
670+ usergroupRepository . Update ( ugroupFirst ) ;
671+ var userRepository = fsql . GetAggregateRootRepository < User1 > ( ) ;
672+
673+ var testsublist1 = fsql . Select < UserGroup > ( )
674+ . ToList ( a => new
675+ {
676+ a . Id ,
677+ list = userRepository . Select . Where ( b => a . Id == 1 ) . Where ( b => b . GroupId == a . Id ) . ToList ( ) ,
678+ list2 = fsql . Select < User1 > ( ) . Where ( b => a . Id == 2 ) . Where ( b => b . GroupId == a . Id ) . ToList ( b => b . Nickname ) ,
679+ } ) ;
680+
681+ Utils . IsStrict = false ;
682+ var user1Tb = fsql . CodeFirst . GetTableByEntity ( typeof ( User11 ) ) ;
683+
684+ fsql . Delete < User1 > ( ) . Where ( "1=1" ) . ExecuteAffrows ( ) ;
685+ fsql . Insert ( new List < User1 >
686+ {
687+ new User1 { Nickname = "nickname11" , Username = "username11" , Description = "desc11" } ,
688+ new User1 { Nickname = "n2" , Username = "u2" , Description = "d2" } ,
689+ new User1 { Nickname = "n3" , Username = "u3" , Description = "d3" } ,
690+ } ) . ExecuteAffrows ( ) ;
691+
692+ fsql . Insert ( new User1 ( ) ) . ExecuteInserted ( ) ;
693+ fsql . Update < User1 > ( ) . SetSource ( new User1 ( ) ) . ExecuteUpdated ( ) ;
694+
695+ fsql . InsertOrUpdate < AppInfoEntity > ( ) . SetSource ( new AppInfoEntity { AppID = "03DN8CW8" , AppName = "app_01" } ) . ExecuteAffrows ( ) ;
696+ var repo2211 = fsql . GetRepository < AppInfoEntity > ( ) ;
697+
698+ var appInfo = repo2211 . Where ( info => info . AppID == "03DN8CW8" ) . First ( ) ;
699+ appInfo = repo2211 . Where ( info => info . AppID == "03DN8CW8" ) . First ( ) ;
700+ var compareDic = new Dictionary < string , object [ ] > ( ) ;
701+ var updateInfo = "" ;
702+
703+ repo2211 . Attach ( appInfo ) ;
704+ appInfo . AppName = "测试" ;
705+ compareDic = repo2211 . CompareState ( appInfo ) ;
706+ Console . WriteLine ( appInfo . AppName ) ;
707+
708+ var sql20250205 = fsql . Select < OrderLine , Product > ( )
709+ . InnerJoin ( ( l , p ) => l . ProductId == p . ID )
710+ . GroupBy ( ( l , p ) => new { p . ID , ShopType = l . ShopType ?? 0 } )
711+ . ToSql ( x => new
712+ {
713+ TradeId = x . Key . ID ,
714+ ShopType = x . Key . ShopType ,
715+ FieldCount = x . CountDistinct ( x . Value . Item2 . ID ) ,
716+ Count = x . Count ( x . Value . Item1 . Id ) ,
717+ Kb = ( long ) x . Sum ( x . Value . Item1 . Amount )
718+ } ) ;
719+
623720 var res = fsql . Select < MemberActionDayCountModel > ( )
624721 . Where ( x => x . Date >= 20230101 && x . Date < 20240101 && x . ScanCode > 0 )
625722 . Where ( x =>
@@ -765,48 +862,7 @@ static void Main(string[] args)
765862
766863 fsql . Select < Table11 > ( ) . Where ( a => a . Options . Value1 == 100 && a . Options . Value2 == "xx" ) . ToList ( ) ;
767864
768- var usergroupRepository = fsql . GetAggregateRootRepository < UserGroup > ( ) ;
769- usergroupRepository . Delete ( a => true ) ;
770- usergroupRepository . Insert ( new [ ] {
771- new UserGroup
772- {
773- CreateTime = DateTime . Now ,
774- GroupName = "group1" ,
775- UpdateTime = DateTime . Now ,
776- Sort = 1 ,
777- User1s = new List < User1 >
778- {
779- new User1 { Nickname = "nickname11" , Username = "username11" , Description = "desc11" } ,
780- new User1 { Nickname = "nickname12" , Username = "username12" , Description = "desc12" } ,
781- new User1 { Nickname = "nickname13" , Username = "username13" , Description = "desc13" } ,
782- }
783- } ,
784- new UserGroup
785- {
786- CreateTime = DateTime . Now ,
787- GroupName = "group2" ,
788- UpdateTime = DateTime . Now ,
789- Sort = 2 ,
790- User1s = new List < User1 >
791- {
792- new User1 { Nickname = "nickname21" , Username = "username21" , Description = "desc21" } ,
793- new User1 { Nickname = "nickname22" , Username = "username22" , Description = "desc22" } ,
794- new User1 { Nickname = "nickname23" , Username = "username23" , Description = "desc23" } ,
795- }
796- } ,
797- } ) ;
798- var ugroupFirst = usergroupRepository . Select . First ( ) ;
799- ugroupFirst . Sort ++ ;
800- usergroupRepository . Update ( ugroupFirst ) ;
801- var userRepository = fsql . GetAggregateRootRepository < User1 > ( ) ;
802-
803- var testsublist1 = fsql . Select < UserGroup > ( )
804- . First ( a => new
805- {
806- a . Id ,
807- list = userRepository . Select . Where ( b => b . GroupId == a . Id ) . ToList ( ) ,
808- list2 = userRepository . Select . Where ( b => b . GroupId == a . Id ) . ToList ( b => b . Nickname ) ,
809- } ) ;
865+
810866
811867
812868
@@ -2984,6 +3040,13 @@ public override TestIdAndIdentity Deserialize(object value)
29843040 }
29853041}
29863042}
3043+ public class AppInfoEntity
3044+ {
3045+ [ Column ( IsPrimary = true , Name = "APP_ID" ) ]
3046+ public string AppID { get ; set ; }
3047+ [ Column ( Name = "APP_NAME" ) ]
3048+ public string AppName { get ; set ; }
3049+ }
29873050public partial class OrderLine22x
29883051{
29893052
@@ -3510,4 +3573,38 @@ public sealed class MemberActionDayCountModel
35103573 /// </summary>
35113574 public decimal ScanCodeAmount { get ; set ; }
35123575 #endregion
3576+ }
3577+ [ ExpressionCall ]
3578+ public static class ExpressionCallExtesions
3579+ {
3580+ static ThreadLocal < ExpressionCallContext > context = new ThreadLocal < ExpressionCallContext > ( ) ;
3581+ public static int CountDistinct < TKey , TValue > ( this ISelectGroupingAggregate < TKey , TValue > that , object column )
3582+ {
3583+ context . Value . Result = $ "count(distinct { context . Value . ParsedContent [ "column" ] } )";
3584+ return 0 ;
3585+ }
3586+ }
3587+
3588+ class User11
3589+ {
3590+ public int Id { get ; set ; } //Id、UserId、User_id
3591+
3592+ public List < Role11 > Role11s { get ; set ; }
3593+ }
3594+ class Role11
3595+ {
3596+ public int Id { get ; set ; }
3597+ public string Name { get ; set ; }
3598+
3599+ public List < User11 > User11s { get ; set ; }
3600+ }
3601+ class User11Role11
3602+ {
3603+ public int Id { get ; set ; }
3604+
3605+ public int User11Id { get ; set ; }
3606+ public User11 User11 { get ; set ; }
3607+
3608+ public int Role11Id { get ; set ; }
3609+ public Role11 Role11 { get ; set ; }
35133610}
0 commit comments