Я делаю веб-приложение MVC 3 с использованием Entity Framework, но я получаю эту ошибку. В моем слое данных я использовал вспомогательный помощник класса.MVC 3 Entity Framework Error - элемент уже добавлен. Ключ в словаре
Ошибка followig:
Элемент уже был добавлен. Ключ в словаре: Добавлен ключ «DbActiveContext»: «DbActiveContext»
Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.
Сведения об исключении: System.ArgumentException: Товар уже добавлен. Ключ в словаре: «DbActiveContext» Ключ добавляется: «DbActiveContext»
Ошибка в строке 24:
Line 22: {
Line 23: _connection = new flashEntities(ConnectionString);
**Line 24: HttpContext.Current.Items.Add("DbActiveContext", _connection);**
Line 25: }
Line 26: return _connection;
мой Connection вспомогательный класс выглядит следующим образом (то же подключение вспомогательный класс работает отлично в другом MVC 3 веб-приложение):
public ObjectContext Connection
{
get
{
if (_connection == null && HttpContext.Current.Items["DbActiveContext"] != null)
{
_connection = (flashEntities)HttpContext.Current.Items["DbActiveContext"];
}
else
{
_connection = new flashEntities(ConnectionString);
HttpContext.Current.Items.Add("DbActiveContext", _connection);
}
return _connection;
}
}
private ObjectContext _connection;
public string ConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings["flashEntities"].ToString();
}
}
Любая помощь будет очень заметной. Благодаря
Является 'DbActiveContext' объявлен в другом месте, например, web.config,? – Gabe
@Gabe: Не он просто объявлен в вспомогательном классе связи, нигде больше. –
Вместо 'HttpContext.Current.Items.Add (« DbActiveContext », _connection);', попробуйте 'HttpContext.Current.Items [" DbActiveContext "] = _connection;' Тогда это просто заменит существующий элемент тем же ключом. – Netricity