Странная ошибка при попытке создать базу данных с использованием EF4.1 Code First - PullRequest
2 голосов
/ 05 июня 2011

Я использую EF4.1 с кодом сначала для создания базы данных.

У меня есть модель в mvc3, которая выглядит следующим образом

    public class BusinessContactDetailsModel
    {
        public int Id { get; set; }

        [Display(Name = "Contact Date")]
        public DateTime ContactDate { get; set; }

        [Range(1, 5)]
        [Display(Name = "Outcome Rating")]
        public int OutcomeRating { get; set; }

        [DataType(DataType.MultilineText)]
        public string Comment { get; set; }


        public int BusinessId { get; set; }

        [Display(Name = "Method of Contact")]
        public int FormOfContactId { get; set; }

        [Display(Name = "Follow up Date")]
        public DateTime FollowUpDate { get; set; }

    }

Что не получается, когда я пытаюсь запустить приложение во время процесса сборки. Я знаю, что FollowUpProperty является причиной проблемы, поскольку это новое свойство, которое я только что добавил, и что странно, если я изменяю свойство с DateTime на Int, оно работает нормально.

У кого-нибудь еще была такая проблема?

Моя трассировка стека выглядит как

[SqlCeException (0x80004005): при преобразовании в datetime произошло переполнение.] System.Data.SqlServerCe.SqlCeCommand.ProcessResults (Int32 ч) +125 System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText (IntPtr & pCursor, логический & isBaseTableCursor) +631 System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand (поведение CommandBehavior, метод String, параметры ResultSetOptions) +509 System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery () +46 System.Data.SqlServerCe.SqlCeMultiCommand.ExecuteReader (поведение CommandBehavior) +152 System.Data.SqlServerCe.SqlCeMultiCommand.ExecuteDbDataReader (поведение CommandBehavior) +36 System.Data.Common.DbCommand.ExecuteReader (поведение CommandBehavior) +10 System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute (транслятор UpdateTranslator, соединение EntityConnection, словарь 2 identifierValues, List 1 генерируемых значений) +8118684 System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager, адаптер IEntityAdapter) + 267

[UpdateException: произошла ошибка при обновлении записей. См. Внутреннее исключение для деталей.] System.Data.Mapping.Update.Internal.UpdateTranslator.Update (IEntityStateManager stateManager, адаптер IEntityAdapter) +389 System.Data.EntityClient.EntityAdapter.Update (IEntityStateManager entityCache) +163 System.Data.Objects.ObjectContext.SaveChanges (параметры SaveOptions) +609 System.Data.Entity.Internal.InternalContext.SaveChanges () + 326

[DbUpdateException: произошла ошибка при обновлении записей. См. Внутреннее исключение для деталей.] System.Data.Entity.Internal.InternalContext.SaveChanges () +372 System.Data.Entity.Internal.LazyInternalContext.SaveChanges () +48 System.Data.Entity.DbContext.SaveChanges () +47 System.Data.Entity.DropCreateDatabaseIfModelChanges 1.InitializeDatabase(TContext context) +502 System.Data.Entity.<>c__DisplayClass2 1.b_ 0 (DbContext c) +143 System.Data.Entity.Internal. <> C _DisplayClass5.b__3 () +59 System.Data.Entity.Internal.InternalContext.PerformInitializationAction (действие Action) + 101

[DataException: исключение произошло при инициализации базы данных. Подробности смотрите в InnerException.] System.Data.Entity.Internal.InternalContext.PerformInitializationAction (Действие действия) +157 System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization () +260 System.Data.Entity.Internal.LazyInternalContext.b__4 (InternalContext c) +31 System.Data.Entity.Internal.RetryAction 1.PerformAction(TInput input) +147 System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action 1 действие) +276 System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase () +112 System.Data.Entity.Internal.InternalContext.Initialize () +41 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType (Type entityType) +34 System.Data.Entity.Internal.Linq.InternalSet 1.Initialize() +148 System.Data.Entity.Internal.Linq.InternalSet 1.GetEnumerator () +33 System.Data.Entity.Infrastructure.DbQuery 1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() +91 System.Collections.Generic.List 1..ctor (источник IEnumerable 1 collection) +315 System.Linq.Enumerable.ToList(IEnumerable 1) +58 MyApplication.CRM.Controllers.BusinessController.Index () в C: \ Users \ sp \ documents \ visual studio 2010 \ Projects \ MyApplication.CRM \ MyApplication.CRM \ Controllers \ BusinessController.cs: 23 lambda_method (Closure, ControllerBase, Object []) +96 System.Web.Mvc.ActionMethodDispatcher.Execute (контроллер ControllerBase, параметры Object []) +17 System.Web.Mvc.ReflectedActionDescriptor.Execute (ControllerContext controllerContext, IDictionary 2 parameters) +208 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary 2 параметра) +27 System.Web.Mvc. <> C_ DisplayClass15.b _12 () +55System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (фильтр IActionFilter, предварительный контекст ActionExecutingContext, фильтры Func 1 continuation) +263 System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList 1, дескриптор 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.b__7 (IAsyncResult ) +12 System.Web.Mvc.Async.WrappedAsyncResult`1.End () +62 System.Web.Mvc. <> C _DisplayClasse.b_ d () +50 System.Web.Mvc.SecurityUtil.b _0 (Действие f) +7 System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust (Действие действия) +22 System.Web.Mvc.MvcHandler.EndProcessRequest (IAsyncResult asyncResult) +60 System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest (результат IAsyncResult) +9 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +8862381 System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логическое и завершено синхронно) + 184

Ответы [ 2 ]

5 голосов
/ 05 июня 2011

Оказывается, это потому, что DateTime не был обнуляемым. Я изменил его, чтобы разрешить нулевые даты, и теперь он работает нормально.

0 голосов
/ 30 сентября 2012

В моем случае TimeSpan был инициализирован до 30 часов, что вызвало исключение при приведении к t-sql!Тупой EF 5.0 RTM!

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