@@ -17,75 +17,70 @@ namespace Xtensive.Sql.Dml
1717 [ Serializable ]
1818 public class SqlTableRef : SqlTable
1919 {
20- private DataTable dataTable ;
21-
2220 /// <summary>
2321 /// Gets the name of the instance.
2422 /// </summary>
2523 /// <value>The name.</value>
26- public override string Name
27- {
28- get { return string . IsNullOrEmpty ( base . Name ) ? dataTable . DbName : base . Name ; }
29- }
24+ public override string Name => string . IsNullOrEmpty ( base . Name ) ? DataTable . DbName : base . Name ;
3025
3126 /// <summary>
3227 /// Gets the referenced table.
3328 /// </summary>
3429 /// <value>The table.</value>
35- public DataTable DataTable
36- {
37- get { return dataTable ; }
38- }
30+ public DataTable DataTable { get ; private set ; }
3931
4032 internal override object Clone ( SqlNodeCloneContext context )
4133 {
42- if ( context . NodeMapping . ContainsKey ( this ) )
34+ if ( context . NodeMapping . ContainsKey ( this ) ) {
4335 return context . NodeMapping [ this ] ;
36+ }
4437
45- var clone = new SqlTableRef { Name = Name , dataTable = DataTable } ;
38+ var clone = new SqlTableRef { Name = Name , DataTable = DataTable } ;
4639 context . NodeMapping [ this ] = clone ;
47- var columnClones = new Collection < SqlTableColumn > ( ) ;
48- foreach ( var column in columns )
49- columnClones . Add ( ( SqlTableColumn ) column . Clone ( context ) ) ;
40+ var index = 0 ;
41+ var columnClones = new SqlTableColumn [ columns . Count ] ;
42+ foreach ( var column in columns ) {
43+ columnClones [ index ++ ] = ( SqlTableColumn ) column . Clone ( context ) ;
44+ }
45+
5046 clone . columns = new SqlTableColumnCollection ( columnClones ) ;
5147
5248 return clone ;
5349 }
5450
55- public override void AcceptVisitor ( ISqlVisitor visitor )
56- {
57- visitor . Visit ( this ) ;
58- }
59-
51+ public override void AcceptVisitor ( ISqlVisitor visitor ) => visitor . Visit ( this ) ;
6052
6153 // Constructors
6254
6355 private SqlTableRef ( )
64- {
65- }
56+ { }
6657
6758 internal SqlTableRef ( DataTable dataTable )
68- : this ( dataTable , string . Empty )
69- {
70- }
59+ : this ( dataTable , string . Empty , Array . Empty < string > ( ) )
60+ { }
7161
7262 internal SqlTableRef ( DataTable dataTable , string name )
73- : this ( dataTable , name , ArrayUtils < string > . EmptyArray )
74- {
75- this . dataTable = dataTable ;
76- var tableColumns = new List < SqlTableColumn > ( ) ;
77- foreach ( DataTableColumn c in dataTable . Columns )
78- tableColumns . Add ( SqlDml . TableColumn ( this , c . Name ) ) ;
79- columns = new SqlTableColumnCollection ( tableColumns ) ;
80- }
63+ : this ( dataTable , name , Array . Empty < string > ( ) )
64+ { }
8165
8266 internal SqlTableRef ( DataTable dataTable , string name , params string [ ] columnNames )
8367 : base ( name )
8468 {
85- this . dataTable = dataTable ;
86- var tableColumns = columnNames . Length == 0
87- ? dataTable . Columns . Select ( c => SqlDml . TableColumn ( this , c . Name ) ) . ToList ( )
88- : columnNames . Select ( cn => SqlDml . TableColumn ( this , cn ) ) . ToList ( ) ;
69+ DataTable = dataTable ;
70+ SqlTableColumn [ ] tableColumns ;
71+ if ( columnNames . Length == 0 ) {
72+ var index = 0 ;
73+ tableColumns = new SqlTableColumn [ dataTable . Columns . Count ] ;
74+ foreach ( var column in dataTable . Columns ) {
75+ tableColumns [ index ++ ] = SqlDml . TableColumn ( this , column . Name ) ;
76+ }
77+ }
78+ else {
79+ tableColumns = new SqlTableColumn [ columnNames . Length ] ;
80+ for ( var index = 0 ; index < tableColumns . Length ; index ++ ) {
81+ tableColumns [ index ] = SqlDml . TableColumn ( this , columnNames [ index ] ) ;
82+ }
83+ }
8984 columns = new SqlTableColumnCollection ( tableColumns ) ;
9085 }
9186 }
0 commit comments