@@ -403,7 +403,7 @@ protected virtual void AddNameSpace()
403403 protected virtual void AddExtendNameSpace ( )
404404 {
405405 var us = Option . Usings ;
406- if ( ! Option . ExtendNameSpace . IsNullOrEmpty ( ) )
406+ if ( ! Option . ExtendNameSpace . IsNullOrEmpty ( ) )
407407 Option . ExtendNameSpace . Trim ( ) . Split ( ',' ) . ToList ( ) . ForEach ( space => us . Add ( space ) ) ;
408408 }
409409
@@ -1685,6 +1685,7 @@ protected virtual Boolean BuildExtendFind(IDataColumn[] columns, Int32 index)
16851685
16861686 var builder = new SearchBuilder ( Table ) { Nullable = Option . Nullable } ;
16871687 var ps = builder . GetParameters ( columns ) ;
1688+ var pdic = ps . ToDictionary ( e => e . Name ) ;
16881689
16891690 // 如果方法名已存在,则不生成
16901691 var key = $ "{ methodName } ({ ps . Join ( "," , e => e . TypeName . TrimEnd ( '?' ) ) } )";
@@ -1693,32 +1694,34 @@ protected virtual Boolean BuildExtendFind(IDataColumn[] columns, Int32 index)
16931694
16941695 if ( index > 0 ) WriteLine ( ) ;
16951696 WriteLine ( "/// <summary>根据{0}查找</summary>" , columns . Select ( e => e . DisplayName ) . Join ( "、" ) ) ;
1696- foreach ( var dc in columns )
1697+ foreach ( var pi in ps )
16971698 {
1698- WriteLine ( "/// <param name=\" {0}\" >{1}</param>" , dc . CamelName ( ) , dc . DisplayName ) ;
1699+ WriteLine ( "/// <param name=\" {0}\" >{1}</param>" , pi . ParameterName , pi . DisplayName ) ;
16991700 }
17001701
17011702 var nullable = EntityOption . Nullable ;
17021703
1703- var args = ps . Join ( ", " , e => $ "{ e . TypeFullName } { e . Name } ") ;
1704+ var args = ps . Join ( ", " , e => $ "{ e . TypeFullName } { e . ParameterName } ") ;
17041705 WriteLine ( "/// <returns>实体对象</returns>" ) ;
17051706 WriteLine ( "public static {2} {0}({1})" , methodName , args , ClassName + ( nullable ? "?" : "" ) ) ;
17061707 WriteLine ( "{" ) ;
17071708 {
17081709 var header = false ;
17091710 foreach ( var dc in columns )
17101711 {
1712+ if ( ! pdic . TryGetValue ( dc . Name , out var pi ) ) continue ;
1713+
17111714 if ( dc . DataType != null && dc . DataType . IsInt ( ) )
1712- WriteLine ( "if ({0} < 0) return null;" , dc . CamelName ( ) ) ;
1715+ WriteLine ( "if ({0} < 0) return null;" , pi . ParameterName ) ;
17131716 else if ( dc . DataType == typeof ( String ) )
17141717 {
17151718 if ( nullable && dc . Nullable )
1716- WriteLine ( "if ({0} == null) return null;" , dc . CamelName ( ) ) ;
1719+ WriteLine ( "if ({0} == null) return null;" , pi . ParameterName ) ;
17171720 else
1718- WriteLine ( "if ({0}.IsNullOrEmpty()) return null;" , dc . CamelName ( ) ) ;
1721+ WriteLine ( "if ({0}.IsNullOrEmpty()) return null;" , pi . ParameterName ) ;
17191722 }
17201723 else if ( dc . DataType == typeof ( DateTime ) && IsDataTime ( dc ) )
1721- WriteLine ( "if ({0}.Year < 1000) return null;" , dc . CamelName ( ) ) ;
1724+ WriteLine ( "if ({0}.Year < 1000) return null;" , pi . ParameterName ) ;
17221725
17231726 header |= CanSearch ( dc ) ;
17241727 }
@@ -1727,14 +1730,16 @@ protected virtual Boolean BuildExtendFind(IDataColumn[] columns, Int32 index)
17271730 var wh = new StringBuilder ( ) ;
17281731 foreach ( var dc in columns )
17291732 {
1733+ if ( ! pdic . TryGetValue ( dc . Name , out var pi ) ) continue ;
1734+
17301735 if ( exp . Length > 0 ) exp . Append ( " & " ) ;
1731- exp . AppendFormat ( "_.{0} == {1}" , dc . Name , dc . CamelName ( ) ) ;
1736+ exp . AppendFormat ( "_.{0} == {1}" , dc . Name , pi . ParameterName ) ;
17321737
17331738 if ( wh . Length > 0 ) wh . Append ( " && " ) ;
17341739 if ( dc . DataType == typeof ( String ) )
1735- wh . AppendFormat ( "e.{0}.EqualIgnoreCase({1})" , dc . Name , dc . CamelName ( ) ) ;
1740+ wh . AppendFormat ( "e.{0}.EqualIgnoreCase({1})" , dc . Name , pi . ParameterName ) ;
17361741 else
1737- wh . AppendFormat ( "e.{0} == {1}" , dc . Name , dc . CamelName ( ) ) ;
1742+ wh . AppendFormat ( "e.{0} == {1}" , dc . Name , pi . ParameterName ) ;
17381743 }
17391744
17401745 var singleCache = false ;
@@ -1748,19 +1753,20 @@ protected virtual Boolean BuildExtendFind(IDataColumn[] columns, Int32 index)
17481753 if ( columns . Length == 1 )
17491754 {
17501755 var pk = columns [ 0 ] ;
1756+ var pi = pdic [ pk . Name ] ;
17511757 if ( pk . PrimaryKey )
17521758 {
17531759 WriteLine ( ) ;
17541760 WriteLine ( "// 单对象缓存" ) ;
1755- WriteLine ( "return Meta.SingleCache[{0}];" , pk . CamelName ( ) ) ;
1761+ WriteLine ( "return Meta.SingleCache[{0}];" , pi . ParameterName ) ;
17561762
17571763 singleCache = true ;
17581764 }
17591765 else if ( pk . Master )
17601766 {
17611767 WriteLine ( ) ;
17621768 WriteLine ( "// 单对象缓存" ) ;
1763- WriteLine ( "return Meta.SingleCache.GetItemWithSlaveKey({0}) as {1};" , pk . CamelName ( ) , ClassName ) ;
1769+ WriteLine ( "return Meta.SingleCache.GetItemWithSlaveKey({0}) as {1};" , pi . ParameterName , ClassName ) ;
17641770
17651771 singleCache = true ;
17661772 }
@@ -1789,6 +1795,7 @@ protected virtual Boolean BuildExtendFindAll(IDataColumn[] columns, Int32 index)
17891795
17901796 var builder = new SearchBuilder ( Table ) { Nullable = Option . Nullable } ;
17911797 var ps = builder . GetParameters ( columns ) ;
1798+ var pdic = ps . ToDictionary ( e => e . Name ) ;
17921799
17931800 // 如果方法名已存在,则不生成
17941801 var key = $ "{ methodName } ({ ps . Join ( "," , e => e . TypeName . TrimEnd ( '?' ) ) } )";
@@ -1797,30 +1804,32 @@ protected virtual Boolean BuildExtendFindAll(IDataColumn[] columns, Int32 index)
17971804
17981805 if ( index > 0 ) WriteLine ( ) ;
17991806 WriteLine ( "/// <summary>根据{0}查找</summary>" , columns . Select ( e => e . DisplayName ) . Join ( "、" ) ) ;
1800- foreach ( var dc in columns )
1807+ foreach ( var pi in ps )
18011808 {
1802- WriteLine ( "/// <param name=\" {0}\" >{1}</param>" , dc . CamelName ( ) , dc . DisplayName ) ;
1809+ WriteLine ( "/// <param name=\" {0}\" >{1}</param>" , pi . ParameterName , pi . DisplayName ) ;
18031810 }
18041811
1805- var args = ps . Join ( ", " , e => $ "{ e . TypeFullName } { e . Name } ") ;
1812+ var args = ps . Join ( ", " , e => $ "{ e . TypeFullName } { e . ParameterName } ") ;
18061813 WriteLine ( "/// <returns>实体列表</returns>" ) ;
18071814 WriteLine ( "public static IList<{2}> {0}({1})" , methodName , args , ClassName ) ;
18081815 WriteLine ( "{" ) ;
18091816 {
18101817 var header = false ;
18111818 foreach ( var dc in columns )
18121819 {
1820+ if ( ! pdic . TryGetValue ( dc . Name , out var pi ) ) continue ;
1821+
18131822 if ( dc . DataType != null && dc . DataType . IsInt ( ) )
1814- WriteLine ( "if ({0} < 0) return [];" , dc . CamelName ( ) , ClassName ) ;
1823+ WriteLine ( "if ({0} < 0) return [];" , pi . ParameterName , ClassName ) ;
18151824 else if ( dc . DataType == typeof ( String ) )
18161825 {
18171826 if ( Option . Nullable && dc . Nullable )
1818- WriteLine ( "if ({0} == null) return [];" , dc . CamelName ( ) ) ;
1827+ WriteLine ( "if ({0} == null) return [];" , pi . ParameterName ) ;
18191828 else
1820- WriteLine ( "if ({0}.IsNullOrEmpty()) return [];" , dc . CamelName ( ) , ClassName ) ;
1829+ WriteLine ( "if ({0}.IsNullOrEmpty()) return [];" , pi . ParameterName , ClassName ) ;
18211830 }
18221831 else if ( dc . DataType == typeof ( DateTime ) && IsDataTime ( dc ) )
1823- WriteLine ( "if ({0}.Year < 1000) return [];" , dc . CamelName ( ) ) ;
1832+ WriteLine ( "if ({0}.Year < 1000) return [];" , pi . ParameterName ) ;
18241833
18251834 header |= CanSearch ( dc ) ;
18261835 }
@@ -1829,14 +1838,16 @@ protected virtual Boolean BuildExtendFindAll(IDataColumn[] columns, Int32 index)
18291838 var wh = new StringBuilder ( ) ;
18301839 foreach ( var dc in columns )
18311840 {
1841+ if ( ! pdic . TryGetValue ( dc . Name , out var pi ) ) continue ;
1842+
18321843 if ( exp . Length > 0 ) exp . Append ( " & " ) ;
1833- exp . AppendFormat ( "_.{0} == {1}" , dc . Name , dc . CamelName ( ) ) ;
1844+ exp . AppendFormat ( "_.{0} == {1}" , dc . Name , pi . ParameterName ) ;
18341845
18351846 if ( wh . Length > 0 ) wh . Append ( " && " ) ;
18361847 if ( dc . DataType == typeof ( String ) )
1837- wh . AppendFormat ( "e.{0}.EqualIgnoreCase({1})" , dc . Name , dc . CamelName ( ) ) ;
1848+ wh . AppendFormat ( "e.{0}.EqualIgnoreCase({1})" , dc . Name , pi . ParameterName ) ;
18381849 else
1839- wh . AppendFormat ( "e.{0} == {1}" , dc . Name , dc . CamelName ( ) ) ;
1850+ wh . AppendFormat ( "e.{0} == {1}" , dc . Name , pi . ParameterName ) ;
18401851 }
18411852
18421853 if ( UsingCache )
@@ -1966,6 +1977,7 @@ protected virtual IList<IDataColumn> BuildAdvanceSearch(SearchBuilder builder)
19661977 var returnName = ClassName ;
19671978
19681979 var ps = builder . GetParameters ( cs , true ) ;
1980+ var pdic = ps . ToDictionary ( e => e . Name ) ;
19691981
19701982 // 如果方法名已存在,则不生成
19711983 var key = $ "Search({ ps . Join ( "," , e => e . TypeName . TrimEnd ( '?' ) ) } )";
@@ -1974,9 +1986,10 @@ protected virtual IList<IDataColumn> BuildAdvanceSearch(SearchBuilder builder)
19741986
19751987 // 注释部分
19761988 WriteLine ( "/// <summary>高级查询</summary>" ) ;
1977- foreach ( var dc in cs )
1989+ foreach ( var pi in ps )
19781990 {
1979- WriteLine ( "/// <param name=\" {0}\" >{1}</param>" , dc . CamelName ( ) , dc . Description ) ;
1991+ if ( ! pi . Extend )
1992+ WriteLine ( "/// <param name=\" {0}\" >{1}</param>" , pi . ParameterName , pi . Description ) ;
19801993 }
19811994
19821995 var dcTime = builder . DataTime ;
@@ -1990,7 +2003,7 @@ protected virtual IList<IDataColumn> BuildAdvanceSearch(SearchBuilder builder)
19902003 WriteLine ( "/// <returns>实体列表</returns>" ) ;
19912004
19922005 // 参数部分
1993- var pis = ps . Join ( ", " , e => $ "{ e . TypeFullName } { e . Name } ") ;
2006+ var pis = ps . Join ( ", " , e => $ "{ e . TypeFullName } { e . ParameterName } ") ;
19942007 WriteLine ( "public static IList<{0}> Search({1})" , returnName , pis ) ;
19952008 WriteLine ( "{" ) ;
19962009 {
@@ -2000,14 +2013,16 @@ protected virtual IList<IDataColumn> BuildAdvanceSearch(SearchBuilder builder)
20002013 WriteLine ( ) ;
20012014 foreach ( var dc in cs )
20022015 {
2016+ if ( ! pdic . TryGetValue ( dc . Name , out var pi ) ) continue ;
2017+
20032018 if ( dc . DataType . IsInt ( ) && ( dc . DataType . IsEnum || ! dc . Properties [ "Type" ] . IsNullOrEmpty ( ) ) )
2004- WriteLine ( "if ({0} >= 0) exp &= _.{1} == {0};" , dc . CamelName ( ) , dc . Name ) ;
2019+ WriteLine ( "if ({0} >= 0) exp &= _.{1} == {0};" , pi . ParameterName , dc . Name ) ;
20052020 else if ( dc . DataType . IsInt ( ) )
2006- WriteLine ( "if ({0} >= 0) exp &= _.{1} == {0};" , dc . CamelName ( ) , dc . Name ) ;
2021+ WriteLine ( "if ({0} >= 0) exp &= _.{1} == {0};" , pi . ParameterName , dc . Name ) ;
20072022 else if ( dc . DataType == typeof ( Boolean ) )
2008- WriteLine ( "if ({0} != null) exp &= _.{1} == {0};" , dc . CamelName ( ) , dc . Name ) ;
2023+ WriteLine ( "if ({0} != null) exp &= _.{1} == {0};" , pi . ParameterName , dc . Name ) ;
20092024 else if ( dc . DataType == typeof ( String ) )
2010- WriteLine ( "if (!{0}.IsNullOrEmpty()) exp &= _.{1} == {0};" , dc . CamelName ( ) , dc . Name ) ;
2025+ WriteLine ( "if (!{0}.IsNullOrEmpty()) exp &= _.{1} == {0};" , pi . ParameterName , dc . Name ) ;
20112026 }
20122027
20132028 if ( dcTime != null )
0 commit comments