Если все, что вам нужно (как мне кажется), это использовать Entity Framework, вам не следует изменять файл machine.config.Это может быть опасно, так как вы можете непреднамеренно сделать его несовместимым.
Вместо этого вы можете выполнить следующую уловку:
Получить данные конфигурации, которые уже прочитаныCLR:
var dataSet = ConfigurationManager.GetSection("system.data") as System.Data.DataSet;
Затем проверьте в первой таблице и третьем столбце этой таблицы имя инварианта вашего провайдера:
bool bFound = false;
foreach (DataRow row in dataSet.Tables[0].Rows)
{
if (row[2].ToString() == "EFOracleProvider")
{
bFound = true;
break;
}
}
// if this provider is not already listed in the table, then add it
// set oracle provider parameters
if (!bFound)
{
dataSet.Tables[0].Rows.Add(
provName,
provDesc,
provInvariant,
provAssembly
);
}
Конечно, вы должны сделать это до первого создания ObjectContext.