System.Data.SQLite
Hex Artifact Content
Not logged in

Artifact 24f134b27fd362ab3ed8a05379399355da83d1cb:


0000: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
0010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0040: 2d 2d 2d 2d 2d 2d 2d 0d 0a 2f 2f 20 3c 63 6f 70  -------..// <cop
0050: 79 72 69 67 68 74 20 66 69 6c 65 3d 22 53 79 6d  yright file="Sym
0060: 62 6f 6c 2e 63 73 22 20 63 6f 6d 70 61 6e 79 3d  bol.cs" company=
0070: 22 4d 69 63 72 6f 73 6f 66 74 22 3e 0d 0a 2f 2f  "Microsoft">..//
0080: 20 20 20 20 20 20 50 6f 72 74 69 6f 6e 73 20 6f        Portions o
0090: 66 20 74 68 69 73 20 66 69 6c 65 20 63 6f 70 79  f this file copy
00a0: 72 69 67 68 74 20 28 63 29 20 4d 69 63 72 6f 73  right (c) Micros
00b0: 6f 66 74 20 43 6f 72 70 6f 72 61 74 69 6f 6e 0d  oft Corporation.
00c0: 0a 2f 2f 20 20 20 20 20 20 61 6e 64 20 61 72 65  .//      and are
00d0: 20 72 65 6c 65 61 73 65 64 20 75 6e 64 65 72 20   released under 
00e0: 74 68 65 20 4d 69 63 72 6f 73 6f 66 74 20 50 75  the Microsoft Pu
00f0: 6c 69 63 20 4c 69 63 65 6e 73 65 2e 20 20 53 65  lic License.  Se
0100: 65 0d 0a 2f 2f 20 20 20 20 20 20 68 74 74 70 3a  e..//      http:
0110: 2f 2f 61 72 63 68 69 76 65 2e 6d 73 64 6e 2e 6d  //archive.msdn.m
0120: 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 45 46 53  icrosoft.com/EFS
0130: 61 6d 70 6c 65 50 72 6f 76 69 64 65 72 2f 50 72  ampleProvider/Pr
0140: 6f 6a 65 63 74 2f 4c 69 63 65 6e 73 65 2e 61 73  oject/License.as
0150: 70 78 0d 0a 2f 2f 20 20 20 20 20 20 6f 72 20 4c  px..//      or L
0160: 69 63 65 6e 73 65 2e 74 78 74 20 66 6f 72 20 64  icense.txt for d
0170: 65 74 61 69 6c 73 2e 0d 0a 2f 2f 20 20 20 20 20  etails...//     
0180: 20 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65   All rights rese
0190: 72 76 65 64 2e 0d 0a 2f 2f 20 3c 2f 63 6f 70 79  rved...// </copy
01a0: 72 69 67 68 74 3e 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d  right>..//------
01b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
01e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d  ---------------.
01f0: 0a 0d 0a 23 69 66 20 55 53 45 5f 45 4e 54 49 54  ...#if USE_ENTIT
0200: 59 5f 46 52 41 4d 45 57 4f 52 4b 5f 36 0d 0a 6e  Y_FRAMEWORK_6..n
0210: 61 6d 65 73 70 61 63 65 20 53 79 73 74 65 6d 2e  amespace System.
0220: 44 61 74 61 2e 53 51 4c 69 74 65 2e 45 46 36 0d  Data.SQLite.EF6.
0230: 0a 23 65 6c 73 65 0d 0a 6e 61 6d 65 73 70 61 63  .#else..namespac
0240: 65 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 53 51  e System.Data.SQ
0250: 4c 69 74 65 2e 4c 69 6e 71 0d 0a 23 65 6e 64 69  Lite.Linq..#endi
0260: 66 0d 0a 7b 0d 0a 20 20 75 73 69 6e 67 20 53 79  f..{..  using Sy
0270: 73 74 65 6d 3b 0d 0a 20 20 75 73 69 6e 67 20 53  stem;..  using S
0280: 79 73 74 65 6d 2e 43 6f 6c 6c 65 63 74 69 6f 6e  ystem.Collection
0290: 73 2e 47 65 6e 65 72 69 63 3b 0d 0a 0d 0a 23 69  s.Generic;....#i
02a0: 66 20 55 53 45 5f 45 4e 54 49 54 59 5f 46 52 41  f USE_ENTITY_FRA
02b0: 4d 45 57 4f 52 4b 5f 36 0d 0a 20 20 75 73 69 6e  MEWORK_6..  usin
02c0: 67 20 53 79 73 74 65 6d 2e 44 61 74 61 2e 45 6e  g System.Data.En
02d0: 74 69 74 79 2e 43 6f 72 65 2e 4d 65 74 61 64 61  tity.Core.Metada
02e0: 74 61 2e 45 64 6d 3b 0d 0a 23 65 6c 73 65 0d 0a  ta.Edm;..#else..
02f0: 20 20 75 73 69 6e 67 20 53 79 73 74 65 6d 2e 44    using System.D
0300: 61 74 61 2e 4d 65 74 61 64 61 74 61 2e 45 64 6d  ata.Metadata.Edm
0310: 3b 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 20 20 20  ;..#endif....   
0320: 20 2f 2f 2f 20 3c 73 75 6d 6d 61 72 79 3e 0d 0a   /// <summary>..
0330: 20 20 2f 2f 2f 20 3c 73 65 65 20 63 72 65 66 3d    /// <see cref=
0340: 22 53 79 6d 62 6f 6c 54 61 62 6c 65 22 2f 3e 0d  "SymbolTable"/>.
0350: 0a 20 20 2f 2f 2f 20 54 68 69 73 20 63 6c 61 73  .  /// This clas
0360: 73 20 72 65 70 72 65 73 65 6e 74 73 20 61 6e 20  s represents an 
0370: 65 78 74 65 6e 74 2f 6e 65 73 74 65 64 20 73 65  extent/nested se
0380: 6c 65 63 74 20 73 74 61 74 65 6d 65 6e 74 2c 0d  lect statement,.
0390: 0a 20 20 2f 2f 2f 20 6f 72 20 61 20 63 6f 6c 75  .  /// or a colu
03a0: 6d 6e 2e 0d 0a 20 20 2f 2f 2f 0d 0a 20 20 2f 2f  mn...  ///..  //
03b0: 2f 20 54 68 65 20 69 6d 70 6f 72 74 61 6e 74 20  / The important 
03c0: 66 69 65 6c 64 73 20 61 72 65 20 4e 61 6d 65 2c  fields are Name,
03d0: 20 54 79 70 65 20 61 6e 64 20 4e 65 77 4e 61 6d   Type and NewNam
03e0: 65 2e 0d 0a 20 20 2f 2f 2f 20 4e 65 77 4e 61 6d  e...  /// NewNam
03f0: 65 20 73 74 61 72 74 73 20 6f 66 66 20 74 68 65  e starts off the
0400: 20 73 61 6d 65 20 61 73 20 4e 61 6d 65 2c 20 61   same as Name, a
0410: 6e 64 20 69 73 20 74 68 65 6e 20 6d 6f 64 69 66  nd is then modif
0420: 69 65 64 20 61 73 20 6e 65 63 65 73 73 61 72 79  ied as necessary
0430: 2e 0d 0a 20 20 2f 2f 2f 0d 0a 20 20 2f 2f 2f 0d  ...  ///..  ///.
0440: 0a 20 20 2f 2f 2f 20 54 68 65 20 72 65 73 74 20  .  /// The rest 
0450: 61 72 65 20 75 73 65 64 20 62 79 20 73 70 65 63  are used by spec
0460: 69 61 6c 20 73 79 6d 62 6f 6c 73 2e 0d 0a 20 20  ial symbols...  
0470: 2f 2f 2f 20 65 2e 67 2e 20 4e 65 65 64 73 52 65  /// e.g. NeedsRe
0480: 6e 61 6d 69 6e 67 20 69 73 20 75 73 65 64 20 62  naming is used b
0490: 79 20 63 6f 6c 75 6d 6e 73 20 74 6f 20 69 6e 64  y columns to ind
04a0: 69 63 61 74 65 20 74 68 61 74 20 61 20 6e 65 77  icate that a new
04b0: 20 6e 61 6d 65 20 6d 75 73 74 0d 0a 20 20 2f 2f   name must..  //
04c0: 2f 20 62 65 20 70 69 63 6b 65 64 20 66 6f 72 20  / be picked for 
04d0: 74 68 65 20 63 6f 6c 75 6d 6e 20 69 6e 20 74 68  the column in th
04e0: 65 20 73 65 63 6f 6e 64 20 70 68 61 73 65 20 6f  e second phase o
04f0: 66 20 74 72 61 6e 73 6c 61 74 69 6f 6e 2e 0d 0a  f translation...
0500: 20 20 2f 2f 2f 0d 0a 20 20 2f 2f 2f 20 49 73 55    ///..  /// IsU
0510: 6e 6e 65 73 74 20 69 73 20 75 73 65 64 20 62 79  nnest is used by
0520: 20 73 79 6d 62 6f 6c 73 20 66 6f 72 20 61 20 63   symbols for a c
0530: 6f 6c 6c 65 63 74 69 6f 6e 20 65 78 70 72 65 73  ollection expres
0540: 73 69 6f 6e 20 75 73 65 64 20 61 73 20 61 20 66  sion used as a f
0550: 72 6f 6d 20 63 6c 61 75 73 65 2e 0d 0a 20 20 2f  rom clause...  /
0560: 2f 2f 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 3c  // This allows <
0570: 73 65 65 20 63 72 65 66 3d 22 53 71 6c 47 65 6e  see cref="SqlGen
0580: 65 72 61 74 6f 72 2e 41 64 64 46 72 6f 6d 53 79  erator.AddFromSy
0590: 6d 62 6f 6c 28 53 71 6c 53 65 6c 65 63 74 53 74  mbol(SqlSelectSt
05a0: 61 74 65 6d 65 6e 74 2c 20 73 74 72 69 6e 67 2c  atement, string,
05b0: 20 53 79 6d 62 6f 6c 2c 20 62 6f 6f 6c 29 22 2f   Symbol, bool)"/
05c0: 3e 20 74 6f 20 61 64 64 20 74 68 65 20 63 6f 6c  > to add the col
05d0: 75 6d 6e 20 6c 69 73 74 0d 0a 20 20 2f 2f 2f 20  umn list..  /// 
05e0: 61 66 74 65 72 20 74 68 65 20 61 6c 69 61 73 2e  after the alias.
05f0: 0d 0a 20 20 2f 2f 2f 0d 0a 20 20 2f 2f 2f 20 3c  ..  ///..  /// <
0600: 2f 73 75 6d 6d 61 72 79 3e 0d 0a 20 20 63 6c 61  /summary>..  cla
0610: 73 73 20 53 79 6d 62 6f 6c 20 3a 20 49 53 71 6c  ss Symbol : ISql
0620: 46 72 61 67 6d 65 6e 74 0d 0a 20 20 7b 0d 0a 20  Fragment..  {.. 
0630: 20 20 20 70 72 69 76 61 74 65 20 44 69 63 74 69     private Dicti
0640: 6f 6e 61 72 79 3c 73 74 72 69 6e 67 2c 20 53 79  onary<string, Sy
0650: 6d 62 6f 6c 3e 20 63 6f 6c 75 6d 6e 73 20 3d 20  mbol> columns = 
0660: 6e 65 77 20 44 69 63 74 69 6f 6e 61 72 79 3c 73  new Dictionary<s
0670: 74 72 69 6e 67 2c 20 53 79 6d 62 6f 6c 3e 28 53  tring, Symbol>(S
0680: 74 72 69 6e 67 43 6f 6d 70 61 72 65 72 2e 43 75  tringComparer.Cu
0690: 72 72 65 6e 74 43 75 6c 74 75 72 65 49 67 6e 6f  rrentCultureIgno
06a0: 72 65 43 61 73 65 29 3b 0d 0a 20 20 20 20 69 6e  reCase);..    in
06b0: 74 65 72 6e 61 6c 20 44 69 63 74 69 6f 6e 61 72  ternal Dictionar
06c0: 79 3c 73 74 72 69 6e 67 2c 20 53 79 6d 62 6f 6c  y<string, Symbol
06d0: 3e 20 43 6f 6c 75 6d 6e 73 0d 0a 20 20 20 20 7b  > Columns..    {
06e0: 0d 0a 20 20 20 20 20 20 67 65 74 20 7b 20 72 65  ..      get { re
06f0: 74 75 72 6e 20 63 6f 6c 75 6d 6e 73 3b 20 7d 0d  turn columns; }.
0700: 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 70 72  .    }....    pr
0710: 69 76 61 74 65 20 62 6f 6f 6c 20 6e 65 65 64 73  ivate bool needs
0720: 52 65 6e 61 6d 69 6e 67 20 3d 20 66 61 6c 73 65  Renaming = false
0730: 3b 0d 0a 20 20 20 20 69 6e 74 65 72 6e 61 6c 20  ;..    internal 
0740: 62 6f 6f 6c 20 4e 65 65 64 73 52 65 6e 61 6d 69  bool NeedsRenami
0750: 6e 67 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20  ng..    {..     
0760: 20 67 65 74 20 7b 20 72 65 74 75 72 6e 20 6e 65   get { return ne
0770: 65 64 73 52 65 6e 61 6d 69 6e 67 3b 20 7d 0d 0a  edsRenaming; }..
0780: 20 20 20 20 20 20 73 65 74 20 7b 20 6e 65 65 64        set { need
0790: 73 52 65 6e 61 6d 69 6e 67 20 3d 20 76 61 6c 75  sRenaming = valu
07a0: 65 3b 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20  e; }..    }.... 
07b0: 20 20 20 62 6f 6f 6c 20 69 73 55 6e 6e 65 73 74     bool isUnnest
07c0: 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 69   = false;..    i
07d0: 6e 74 65 72 6e 61 6c 20 62 6f 6f 6c 20 49 73 55  nternal bool IsU
07e0: 6e 6e 65 73 74 0d 0a 20 20 20 20 7b 0d 0a 20 20  nnest..    {..  
07f0: 20 20 20 20 67 65 74 20 7b 20 72 65 74 75 72 6e      get { return
0800: 20 69 73 55 6e 6e 65 73 74 3b 20 7d 0d 0a 20 20   isUnnest; }..  
0810: 20 20 20 20 73 65 74 20 7b 20 69 73 55 6e 6e 65      set { isUnne
0820: 73 74 20 3d 20 76 61 6c 75 65 3b 20 7d 0d 0a 20  st = value; }.. 
0830: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 73 74 72 69     }....    stri
0840: 6e 67 20 6e 61 6d 65 3b 0d 0a 20 20 20 20 70 75  ng name;..    pu
0850: 62 6c 69 63 20 73 74 72 69 6e 67 20 4e 61 6d 65  blic string Name
0860: 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 67  ..    {..      g
0870: 65 74 20 7b 20 72 65 74 75 72 6e 20 6e 61 6d 65  et { return name
0880: 3b 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20  ; }..    }....  
0890: 20 20 73 74 72 69 6e 67 20 6e 65 77 4e 61 6d 65    string newName
08a0: 3b 0d 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74  ;..    public st
08b0: 72 69 6e 67 20 4e 65 77 4e 61 6d 65 0d 0a 20 20  ring NewName..  
08c0: 20 20 7b 0d 0a 20 20 20 20 20 20 67 65 74 20 7b    {..      get {
08d0: 20 72 65 74 75 72 6e 20 6e 65 77 4e 61 6d 65 3b   return newName;
08e0: 20 7d 0d 0a 20 20 20 20 20 20 73 65 74 20 7b 20   }..      set { 
08f0: 6e 65 77 4e 61 6d 65 20 3d 20 76 61 6c 75 65 3b  newName = value;
0900: 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20 20   }..    }....   
0910: 20 70 72 69 76 61 74 65 20 54 79 70 65 55 73 61   private TypeUsa
0920: 67 65 20 74 79 70 65 3b 0d 0a 20 20 20 20 69 6e  ge type;..    in
0930: 74 65 72 6e 61 6c 20 54 79 70 65 55 73 61 67 65  ternal TypeUsage
0940: 20 54 79 70 65 0d 0a 20 20 20 20 7b 0d 0a 20 20   Type..    {..  
0950: 20 20 20 20 67 65 74 20 7b 20 72 65 74 75 72 6e      get { return
0960: 20 74 79 70 65 3b 20 7d 0d 0a 20 20 20 20 20 20   type; }..      
0970: 73 65 74 20 7b 20 74 79 70 65 20 3d 20 76 61 6c  set { type = val
0980: 75 65 3b 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a  ue; }..    }....
0990: 20 20 20 20 70 75 62 6c 69 63 20 53 79 6d 62 6f      public Symbo
09a0: 6c 28 73 74 72 69 6e 67 20 6e 61 6d 65 2c 20 54  l(string name, T
09b0: 79 70 65 55 73 61 67 65 20 74 79 70 65 29 0d 0a  ypeUsage type)..
09c0: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 74 68 69      {..      thi
09d0: 73 2e 6e 61 6d 65 20 3d 20 6e 61 6d 65 3b 0d 0a  s.name = name;..
09e0: 20 20 20 20 20 20 74 68 69 73 2e 6e 65 77 4e 61        this.newNa
09f0: 6d 65 20 3d 20 6e 61 6d 65 3b 0d 0a 20 20 20 20  me = name;..    
0a00: 20 20 74 68 69 73 2e 54 79 70 65 20 3d 20 74 79    this.Type = ty
0a10: 70 65 3b 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20  pe;..    }....  
0a20: 20 20 23 72 65 67 69 6f 6e 20 49 53 71 6c 46 72    #region ISqlFr
0a30: 61 67 6d 65 6e 74 20 4d 65 6d 62 65 72 73 0d 0a  agment Members..
0a40: 0d 0a 20 20 20 20 2f 2f 2f 20 3c 73 75 6d 6d 61  ..    /// <summa
0a50: 72 79 3e 0d 0a 20 20 20 20 2f 2f 2f 20 57 72 69  ry>..    /// Wri
0a60: 74 65 20 74 68 69 73 20 73 79 6d 62 6f 6c 20 6f  te this symbol o
0a70: 75 74 20 61 73 20 61 20 73 74 72 69 6e 67 20 66  ut as a string f
0a80: 6f 72 20 73 71 6c 2e 20 20 54 68 69 73 20 69 73  or sql.  This is
0a90: 20 6a 75 73 74 0d 0a 20 20 20 20 2f 2f 2f 20 74   just..    /// t
0aa0: 68 65 20 6e 65 77 20 6e 61 6d 65 20 6f 66 20 74  he new name of t
0ab0: 68 65 20 73 79 6d 62 6f 6c 20 28 77 68 69 63 68  he symbol (which
0ac0: 20 63 6f 75 6c 64 20 62 65 20 74 68 65 20 73 61   could be the sa
0ad0: 6d 65 20 61 73 20 74 68 65 20 6f 6c 64 20 6e 61  me as the old na
0ae0: 6d 65 29 2e 0d 0a 20 20 20 20 2f 2f 2f 0d 0a 20  me)...    ///.. 
0af0: 20 20 20 2f 2f 2f 20 57 65 20 72 65 6e 61 6d 65     /// We rename
0b00: 20 63 6f 6c 75 6d 6e 73 20 68 65 72 65 20 69 66   columns here if
0b10: 20 6e 65 63 65 73 73 61 72 79 2e 0d 0a 20 20 20   necessary...   
0b20: 20 2f 2f 2f 20 3c 2f 73 75 6d 6d 61 72 79 3e 0d   /// </summary>.
0b30: 0a 20 20 20 20 2f 2f 2f 20 3c 70 61 72 61 6d 20  .    /// <param 
0b40: 6e 61 6d 65 3d 22 77 72 69 74 65 72 22 3e 3c 2f  name="writer"></
0b50: 70 61 72 61 6d 3e 0d 0a 20 20 20 20 2f 2f 2f 20  param>..    /// 
0b60: 3c 70 61 72 61 6d 20 6e 61 6d 65 3d 22 73 71 6c  <param name="sql
0b70: 47 65 6e 65 72 61 74 6f 72 22 3e 3c 2f 70 61 72  Generator"></par
0b80: 61 6d 3e 0d 0a 20 20 20 20 70 75 62 6c 69 63 20  am>..    public 
0b90: 76 6f 69 64 20 57 72 69 74 65 53 71 6c 28 53 71  void WriteSql(Sq
0ba0: 6c 57 72 69 74 65 72 20 77 72 69 74 65 72 2c 20  lWriter writer, 
0bb0: 53 71 6c 47 65 6e 65 72 61 74 6f 72 20 73 71 6c  SqlGenerator sql
0bc0: 47 65 6e 65 72 61 74 6f 72 29 0d 0a 20 20 20 20  Generator)..    
0bd0: 7b 0d 0a 20 20 20 20 20 20 69 66 20 28 74 68 69  {..      if (thi
0be0: 73 2e 4e 65 65 64 73 52 65 6e 61 6d 69 6e 67 29  s.NeedsRenaming)
0bf0: 0d 0a 20 20 20 20 20 20 7b 0d 0a 20 20 20 20 20  ..      {..     
0c00: 20 20 20 73 74 72 69 6e 67 20 6e 65 77 4e 61 6d     string newNam
0c10: 65 3b 0d 0a 20 20 20 20 20 20 20 20 69 6e 74 20  e;..        int 
0c20: 69 20 3d 20 73 71 6c 47 65 6e 65 72 61 74 6f 72  i = sqlGenerator
0c30: 2e 41 6c 6c 43 6f 6c 75 6d 6e 4e 61 6d 65 73 5b  .AllColumnNames[
0c40: 74 68 69 73 2e 4e 65 77 4e 61 6d 65 5d 3b 0d 0a  this.NewName];..
0c50: 20 20 20 20 20 20 20 20 64 6f 0d 0a 20 20 20 20          do..    
0c60: 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 20      {..         
0c70: 20 2b 2b 69 3b 0d 0a 20 20 20 20 20 20 20 20 20   ++i;..         
0c80: 20 6e 65 77 4e 61 6d 65 20 3d 20 74 68 69 73 2e   newName = this.
0c90: 4e 61 6d 65 20 2b 20 69 2e 54 6f 53 74 72 69 6e  Name + i.ToStrin
0ca0: 67 28 53 79 73 74 65 6d 2e 47 6c 6f 62 61 6c 69  g(System.Globali
0cb0: 7a 61 74 69 6f 6e 2e 43 75 6c 74 75 72 65 49 6e  zation.CultureIn
0cc0: 66 6f 2e 49 6e 76 61 72 69 61 6e 74 43 75 6c 74  fo.InvariantCult
0cd0: 75 72 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d  ure);..        }
0ce0: 20 77 68 69 6c 65 20 28 73 71 6c 47 65 6e 65 72   while (sqlGener
0cf0: 61 74 6f 72 2e 41 6c 6c 43 6f 6c 75 6d 6e 4e 61  ator.AllColumnNa
0d00: 6d 65 73 2e 43 6f 6e 74 61 69 6e 73 4b 65 79 28  mes.ContainsKey(
0d10: 6e 65 77 4e 61 6d 65 29 29 3b 0d 0a 20 20 20 20  newName));..    
0d20: 20 20 20 20 73 71 6c 47 65 6e 65 72 61 74 6f 72      sqlGenerator
0d30: 2e 41 6c 6c 43 6f 6c 75 6d 6e 4e 61 6d 65 73 5b  .AllColumnNames[
0d40: 74 68 69 73 2e 4e 65 77 4e 61 6d 65 5d 20 3d 20  this.NewName] = 
0d50: 69 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f  i;....        //
0d60: 20 50 72 65 76 65 6e 74 20 69 74 20 66 72 6f 6d   Prevent it from
0d70: 20 62 65 69 6e 67 20 72 65 6e 61 6d 65 64 20 72   being renamed r
0d80: 65 70 65 61 74 65 64 6c 79 2e 0d 0a 20 20 20 20  epeatedly...    
0d90: 20 20 20 20 74 68 69 73 2e 4e 65 65 64 73 52 65      this.NeedsRe
0da0: 6e 61 6d 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0d  naming = false;.
0db0: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 4e 65  .        this.Ne
0dc0: 77 4e 61 6d 65 20 3d 20 6e 65 77 4e 61 6d 65 3b  wName = newName;
0dd0: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 41  ....        // A
0de0: 64 64 20 74 68 69 73 20 63 6f 6c 75 6d 6e 20 6e  dd this column n
0df0: 61 6d 65 20 74 6f 20 6c 69 73 74 20 6f 66 20 6b  ame to list of k
0e00: 6e 6f 77 6e 20 6e 61 6d 65 73 20 73 6f 20 74 68  nown names so th
0e10: 61 74 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20  at there are no 
0e20: 73 75 62 73 65 71 75 65 6e 74 0d 0a 20 20 20 20  subsequent..    
0e30: 20 20 20 20 2f 2f 20 63 6f 6c 6c 69 73 69 6f 6e      // collision
0e40: 73 0d 0a 20 20 20 20 20 20 20 20 73 71 6c 47 65  s..        sqlGe
0e50: 6e 65 72 61 74 6f 72 2e 41 6c 6c 43 6f 6c 75 6d  nerator.AllColum
0e60: 6e 4e 61 6d 65 73 5b 6e 65 77 4e 61 6d 65 5d 20  nNames[newName] 
0e70: 3d 20 30 3b 0d 0a 20 20 20 20 20 20 7d 0d 0a 20  = 0;..      }.. 
0e80: 20 20 20 20 20 77 72 69 74 65 72 2e 57 72 69 74       writer.Writ
0e90: 65 28 53 71 6c 47 65 6e 65 72 61 74 6f 72 2e 51  e(SqlGenerator.Q
0ea0: 75 6f 74 65 49 64 65 6e 74 69 66 69 65 72 28 74  uoteIdentifier(t
0eb0: 68 69 73 2e 4e 65 77 4e 61 6d 65 29 29 3b 0d 0a  his.NewName));..
0ec0: 20 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 23 65 6e      }....    #en
0ed0: 64 72 65 67 69 6f 6e 0d 0a 20 20 7d 0d 0a 7d 0d  dregion..  }..}.
0ee0: 0a                                               .