private manytoone CreateManyToOne(IForeignKeyColumnInfo iForeignKeyColumnInfo,@class referredClass) { manytoone mto = new manytoone(); mto.column = iForeignKeyColumnInfo.ForeignKeyColumnName; mto.@class = referredClass.name; mto.name = currentContext.NamingStrategy.GetNameForManyToOne(referredClass.name, new string[] { iForeignKeyColumnInfo.ForeignKeyColumnName }); return SetIfNullable(mto,new IForeignKeyColumnInfo[]{iForeignKeyColumnInfo}); }
private manytoone CreateManyToOne(IForeignKeyColumnInfo[] keyManyToOne, @class referredClass) { manytoone mto = new manytoone(); mto.Items = keyManyToOne.Select(q => new column(){ name=q.ForeignKeyColumnName}).ToArray(); mto.@class = referredClass.name; mto.name = currentContext.NamingStrategy.GetNameForManyToOne(referredClass.name , keyManyToOne.Select(q=>q.ForeignKeyColumnName).ToArray() ); return SetIfNullable(mto,keyManyToOne); }
private manytoone CreateManyToOne(IForeignKeyColumnInfo iForeignKeyColumnInfo, @class referredClass) { manytoone mto = new manytoone(); mto.column = iForeignKeyColumnInfo.ForeignKeyColumnName; mto.@class = referredClass.name; mto.name = currentContext.NamingStrategy.GetNameForManyToOne(referredClass.name, new string[] { iForeignKeyColumnInfo.ForeignKeyColumnName }); return(SetIfNullable(mto, new IForeignKeyColumnInfo[] { iForeignKeyColumnInfo })); }
private key GenerateCollectionKey(IForeignKeyColumnInfo[] kdef) { key key; key = new key(); if (kdef.Length == 1) { key.column1 = kdef[0].ForeignKeyColumnName; } else { key.column = kdef.Select(q => new column() { name = q.ForeignKeyColumnName }).ToArray(); } return key; }
private ITableMetadata GetPrimaryTable(IForeignKeyColumnInfo[] iForeignKeyColumnInfo) { //we should have only one table as primary ITableMetadata pname = null; foreach (var s in iForeignKeyColumnInfo) { if (pname != null && s.PrimaryKeyTableName != pname.Name) { logger.Warn(string.Format("Inconsistent key definition. Set not created")); return null; } pname = new TableMetadata(s.PrimaryKeyTableCatalog,s.PrimaryKeyTableSchema,s.PrimaryKeyTableName); } return pname; }
protected void AddFKColumnInfo(string tablename, string constraint, IForeignKeyColumnInfo[] keyColumns) { if (!fkForTables.ContainsKey(tablename)) fkForTables[tablename] = new Dictionary<string, IForeignKeyColumnInfo[]>(); // need a merge... if (!fkForTables[tablename].ContainsKey(constraint)) { fkForTables[tablename][constraint] = keyColumns; } else { List<IForeignKeyColumnInfo> orig = new List<IForeignKeyColumnInfo>(); orig.AddRange(fkForTables[tablename][constraint]); orig.AddRange(keyColumns); fkForTables[tablename][constraint] = orig.ToArray(); } }
private manytoone SetIfNullable(manytoone mto, IForeignKeyColumnInfo[] iForeignKeyColumnInfo) { bool notnull = true; foreach (var fk in iForeignKeyColumnInfo) { var meta = currentContext.GetTableMetaData(fk.ForeignKeyTableCatalog, fk.ForeignKeyTableSchema, fk.ForeignKeyTableName); if( null != meta ) { var cinfo = meta.GetColumnMetadata(fk.ForeignKeyColumnName); if (true.ParseFromDb(cinfo.Nullable) == true) { notnull = false; break; } } } mto.notnull = notnull; mto.notnullSpecified = mto.notnull; return mto; }