если возможно создать соединение с базой данных в том же файле, где учетные данные хранятся. Встройте учетные данные в операторе подключения.
mysql_connect("localhost", "me", "mypass");
Иначе лучше сбрасывать учетные данные после оператора подключения, потому что учетные данные, которые не находятся в памяти, не могут быть чтение из памяти ;)
include("/outside-webroot/db_settings.php");
mysql_connect("localhost", $db_user, $db_pass);
unset ($db_user, $db_pass);
Я разобрался, у меня действительно был неправильный EntitySet. Я обошел это, передав следующий аргумент в качестве первого аргумента при создании нового ключа объекта:
originalCandidate.educationReference.EntityKey = new System.Data.EntityKey(originalCandidate.educationReference.EntityKey.EntityContainerName + "." + originalCandidate.educationReference.EntityKey.EntitySetName, "ID", candidateToEdit.education.ID);
Довольно неприятно, но это работает. С нетерпением жду беспорядка с внешним ключом в EF, который будет устранен в .net 4.0