public void ExecuteOutFkCache()
{
//all foreign keys columns grouped by fk name
var keys = new HashSet<DbColumnName>(PrimaryKeyColumns.Select(x => x as DbColumnName));
var safe = OutRelations.GroupBy(x => x.FkColumnRef.TableRef).ToDictionary(x => x.Key, x => x.Count());
ManyToOneRelations = OutRelations.GroupBy(x => x.Name).Select(x => new DbManyToOne(Context, x.ToList())
{
IsKey = x.Any(y => keys.Contains(y.FkColumnRef)),
SafeNaming = safe[x.First().FkColumnRef.TableRef] == 1
});
}