2014-04-14 2 views
0

Следующий код бросает первый шанс исключение:Glimpse EF6: первый шанс исключение типа «System.NullReferenceException» произошло в EntityFramework.SqlServer.dll

public HttpResponseMessage Get(int id) 
{ 
     try 
     { 
      var module = _module.ODataQueryable().SingleOrDefault(m => m.ModuleId == id); 
      return Request.CreateResponse(HttpStatusCode.Created, module); 
     } 
     catch (Exception ex) 
     { 
      Log.ErrorException("Error adding module", ex); 
      return Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message); 
     } 
} 

Если мы заменим переменную id с жестко закодированы int, например, 34, тогда выполняется код.

Источником за исключением является Glimpse.EF6 и StackTrace является:

at Glimpse.EF.AlternateType.GlimpseDbProviderServices.SetDbParameterValue(DbParameter parameter, TypeUsage parameterType, Object value) 
    at System.Data.Entity.Core.Common.DbProviderServices.SetParameterValue(DbParameter parameter, TypeUsage parameterType, Object value) 
    at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.SyncParameterProperties(EntityParameter entityParameter, DbParameter storeParameter, DbProviderServices storeProviderServices) 
    at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.PrepareEntityCommandBeforeExecution(EntityCommand entityCommand) 
    at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) 
    at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues) 
    at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6() 
    at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) 
    at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5() 
    at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation) 
    at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) 
    at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0() 
    at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() 
    at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source) 
    at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__2[TResult](IEnumerable`1 sequence) 
    at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot) 
    at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression expression) 
    at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[TResult](Expression expression) 
    at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source, Expression`1 predicate) 
    at Denarii.Issuing.Web.ClientPortal.Api.ModuleController.Get(Int32 id) in c:\Projects\Denarii.Issuing\Denarii.Issuing.Web.ClientPortal\Api\ModuleController.cs:line 64 

мне нужно отлаживать плагин Glimpse Ef6 ли? Сервис модуля (_module) работает при вызове из приложения WinForms или консольного приложения. Любая помощь очень ценится.

+0

Служба модуль использует Repository и UnitOfWorkPattern https: // genericunitofworkandrepositories. codeplex.com/ – jlurie

+0

с использованием следующей строки кода приводит к тому же исключению: throw module = _module.Query (m => m.ModuleId == id) .Select(). SingleOrDefault(); с использованием следующей строки кода исключение не генерируется, однако эта строка оценивает условие после того, как все строки были выбраны из источника данных: var module = _module.Query(). Select(). SingleOrDefault (m => m.ModuleId == id); Исключение, безусловно, происходит в Glimpse, поскольку исключение больше не выбрасывается после удаления Glimpse из проекта. – jlurie

ответ

0

Проблема, о которой вы говорите, является известной проблемой, которую вы можете найти here в списке проблем Glimpse.

Вы можете добавить дополнительную информацию, которая может помочь решить вопрос

UPDATE: The issue было зафиксировано @anthonyv тем временем

+0

Вчера вечером я попытался начать с нового решения для веб-проектов mvc, используя базу данных Northwind. Все работало нормально, пока я не установил Glipmse, после чего ни один из запросов к базе данных не работал. Я начал получать сообщение об ошибке. Я буду позже обновлять точное сообщение об ошибке. Здесь на работе работает базовый SQL. Вот изображение, показывающее, что вкладка SQL работает Image and video hosting by TinyPic. – jlurie

+0

Я думаю, что есть ошибка с последней версией Glimpse. При установке Glimpse изменен файл web.config, однако я думаю, что установщик не смог добавить следующее в из web.config

jlurie

+0

@jlurie Glimpse использует файл web.config.transform, который обрабатывается NuGet, если что-то отсутствует в вашей конфигурации, то это, скорее всего, связано с NuGet. Мы не можем так много сделать, как только этот раздел зарегистрирован в файле web.config.transform – cgijbels

Смежные вопросы