public bool ContainsForeignFields(ForeignKey fk) { bool ret = false; if (fk.InternalTable == Name) { foreach (string str in fk.InternalFields) { if (Fields.Contains(str)) { ret = true; break; } } } return ret; }
public bool Equals(ForeignKey fk) { if ((_internalTableName != fk._internalTableName) || (_externalTableName != fk._externalTableName) || (_internalFields.Count!=fk._internalFields.Count) || (_externalFields.Count!=fk._externalFields.Count)) return false; foreach(string str in _internalFields) { if (!fk._internalFields.Contains(str)) return false; } foreach (string str in _externalFields) { if (!fk._externalFields.Contains(str)) return false; } return true; }
public bool IsForForeignRelation(ForeignKey fk) { return fk.ExternalTable == Name; }
internal string CreateForeignKey(ForeignKey key) { string field=""; foreach (string str in key.InternalFields) { field+=str+","; } field=field.Substring(0,field.Length-1); string Foreigns = ""; foreach (string str in key.ExternalFields) { Foreigns+=str+","; } Foreigns=Foreigns.Substring(0,Foreigns.Length-1); return string.Format(CreateForeignKeyString,key.InternalTable,field,key.ExternalTable,Foreigns,key.OnUpdate,key.OnDelete); }