private static String GetSqlInlineParameterMap(String propName, String clrTypeDecl, String providerDbTypeName, bool isExplicit,SqlOption sqlOption) {
     String s = propName;
     //s = s + ", type=" + clrTypeDecl;
     if (sqlOption.IncludeDbType)
         s = s + ",dbType=" + providerDbTypeName;
     return s;
 }
 private static String GetIdBase(String entityName, String ns, SqlOption option) {
     switch (option.IdPattern) {
         case StmtIdPattern.Local:
             return String.Empty;
         case StmtIdPattern.Classified:
             return entityName + option.IdDelimiter;
         case StmtIdPattern.NamespaceClassified:
             //Something like "Hello-World-MyClass-"
             return ns.Replace(".", option.IdDelimiter)
                 + option.IdDelimiter
                 + entityName
                 + option.IdDelimiter;
         default:
             throw new NotImplementedException(String.Format("Unknown IdPattern [{0}]", option.IdPattern.ToString()));
     }
 }
        public ColumnInfo(ColumnSchema column, MemberOption memberOption, SqlOption sqlOption, IDbVendor dbVendor) {
            if (column == null) throw new ArgumentNullException("column");
            if (memberOption == null) throw new ArgumentNullException("memberOption");
            if (dbVendor == null) throw new ArgumentNullException("dbVendor");

            //Assign parameters to member variables.
            m_Column = column;
            m_MemberOption = memberOption;
			m_SqlOption = sqlOption;
            m_DbVendor = dbVendor;

            m_ClrType = DbVendor.GetClrType(column, MemberOption.UseNullable);
            m_ClrPrimitiveType = Nullable.GetUnderlyingType(m_ClrType);
            m_ClrPrimitiveType = (m_ClrPrimitiveType != null) ? m_ClrPrimitiveType : m_ClrType;

            m_IsClrNullable = Nullable.GetUnderlyingType(m_ClrType) != null;
            //m_ClrTypeDecl = GetClrTypeDecl(m_ClrType);
			m_ClrTypeDecl = CSHelper.CSharpType(m_Column);
            m_IsLob = DbVendor.IsLob(Column);

            m_PropName = GetPropName(Column, MemberOption);
            m_VarName = GetVarName(PropName, MemberOption);
            m_ClrParamName = CSHelper.GetCamelCase(PropName);
            m_ClrParamDecl = ClrTypeDecl + " " + ClrParamName;
            m_InitialValueDecl = m_IsClrNullable ? " = null" : String.Empty;

            m_PropAccessDecl = CSHelper.GetMemberAccessName(MemberOption.PropAccess);
            m_VarAccessDecl = CSHelper.GetMemberAccessName(MemberOption.VarAccess);

            m_ProviderDbType = DbVendor.GetProviderDbType(Column);
            m_ProviderDbTypeName = DbVendor.GetProviderDbTypeName(m_ProviderDbType);
            m_IsExpilicit = DbVendor.IsExplicit(Column);

            m_ResultColumnName = Column.Name;
            m_SqlColumnName = DbVendor.QuotedStr(Column.Name);
            m_SqlQualifiedColumnName = DbVendor.QuotedStr(column.Table.Name) + "." + m_SqlColumnName;
            m_SqlInlineParameterMap = GetSqlInlineParameterMap(PropName, ClrTypeDecl, ProviderDbTypeName, IsExpilicit, SqlOption);
            m_SqlParameterClass = m_ClrPrimitiveType.Name;
        }