InvalidOpertationExecution не был обработан кодом пользователя - PullRequest
0 голосов
/ 22 декабря 2011

Когда я запускаю свое приложение, я получаю эту ошибку:

InvalidOperationException: для свойства 'Id' в 'SiteTable' не может быть установлено значение 'Double'. Необходимо установить для этого свойства ненулевое значение типа Int32.

Код, который производит это:

public Dictionary<string, string> GetSites()
{
    Dictionary<string, string> sitesDict = new Dictionary<string, string>();

    var sites = from r in _db.SITE
                orderby r.Name
                select r;

    foreach (var site in sites)
    {
        sitesDict.Add(site.Id.ToString(), site.Name);
    }
    return sitesDict;
}

В режиме отладки диалоговое окно с ошибкой указывает на цикл foreach, а in выделяется зеленым цветом.

Эта ошибка возникает только во время выполнения.

Трассировка стека:

System.Data.Common.Internal.Materialization.ErrorHandlingValueReader`1.GetValue(DbDataReader reader, Int32 ordinal) +292
System.Data.Common.Internal.Materialization.Shaper.GetPropertyValueWithErrorHandling(Int32 ordinal, String propertyName, String typeName) +51
lambda_method(Closure , Shaper ) +97
System.Data.Common.Internal.Materialization.Shaper.HandleEntityAppendOnly(Func`2 constructEntityDelegate, EntityKey entityKey, EntitySet entitySet) +218
lambda_method(Closure , Shaper ) +291
System.Data.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper) +170
System.Data.Common.Internal.Materialization.SimpleEnumerator.MoveNext() +84
ARFODataService.SearchServices.ARFOStaticValues.GetSites() in <snip>\ARFODataService\SearchServices\ARFOStaticValues.cs:22
ARFO_Stewardship.Controllers.HomeController.Index() in <snip>\ARFO_Stewardship\Controllers\HomeController.cs:31
lambda_method(Closure , ControllerBase , Object[] ) +96
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +208
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +55
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263
System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +191
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
System.Web.Mvc.Controller.ExecuteCore() +116
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8963149
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

Ценю любую помощь в выяснении этого.

Спасибо.

1 Ответ

0 голосов
/ 22 декабря 2011

Первый комментарий является правильным, из сообщения об ошибке похоже, что ваша база данных говорит, что значение «SiteTable.ID» является целым числом, но ваш объект сущности думает, что это двойное число (или, возможно, наоборот).

Попробуйте обновить объект сущности в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...