示例#1
0
 internal Key ResolveForeignKeyReferences(Type type, Key key)
 {
     // determine whether we need to translate names
     if (key.SourceType != null && key.SourceType != type)
     {
         // translate column names in key to foreign key name in table used by type
         Key       fkKey = new Key(type, false);
         ObjectMap map   = ObjectFactory.GetMap(this, key.SourceType);
         ObjectMap fkMap = ObjectFactory.GetMap(this, type);
         foreach (string name in key.Keys)
         {
             string   fieldName = key.isPropertyKeys ? name : map.GetPropertyName(name);
             FieldMap fkfm      = fkMap.GetForeignKeyFieldMap(map.Type, fieldName);
             fkKey[fkfm.ColumnName] = key[name];
         }
         key = fkKey;
     }
     return(key);
 }