Следующий код бросает первый шанс исключение: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 или консольного приложения. Любая помощь очень ценится.
Служба модуль использует Repository и UnitOfWorkPattern https: // genericunitofworkandrepositories. codeplex.com/ – jlurie
с использованием следующей строки кода приводит к тому же исключению: throw module = _module.Query (m => m.ModuleId == id) .Select(). SingleOrDefault(); с использованием следующей строки кода исключение не генерируется, однако эта строка оценивает условие после того, как все строки были выбраны из источника данных: var module = _module.Query(). Select(). SingleOrDefault (m => m.ModuleId == id); Исключение, безусловно, происходит в Glimpse, поскольку исключение больше не выбрасывается после удаления Glimpse из проекта. – jlurie