OData v4不支持Nullable <datetime>?</datetime>

时间:2014-05-13 15:45:56

标签: odata asp.net-web-api2

“/”应用程序中的服务器错误。


  

类型'System.Nullable`1 [[System.DateTime,mscorlib,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'   “WebAPIOData.Models.Categoria”中的“DataAlteracaoDate”属性   type不是受支持的类型。参数名称:navigationProperty

堆栈追踪:

  

[ArgumentException:类型'System.Nullable`1 [[System.DateTime,   mscorlib,版本= 4.0.0.0,文化=中性,   PublicKeyToken = b77a5c561934e089]]'属性'DataAlteracaoDate'中   'WebAPIOData.Models.Categoria'类型不是受支持的类型。   参数名称:navigationProperty]
  System.Web.OData.Builder.EntityTypeConfiguration.AddNavigationProperty(的PropertyInfo   navigationProperty,EdmMultiplicity multiplicity,Boolean   containsTarget)+1054
  System.Web.OData.Builder.EntityTypeConfiguration.AddNavigationProperty(的PropertyInfo   navigationProperty,EdmMultiplicity multiplicity)+47
  System.Web.OData.Builder.ODataConventionModelBuilder.MapEntityType(EntityTypeConfiguration   实体)+447
  System.Web.OData.Builder.ODataConventionModelBuilder.MapType(StructuralTypeConfiguration   edmType)+120
  System.Web.OData.Builder.ODataConventionModelBuilder.MapTypes()+104
  System.Web.OData.Builder.ODataConventionModelBuilder.GetEdmModel()   +195 WebAPIOData.WebApiConfig.GetModel()在c:\ Projetos \ HND022Git \ SmartSales \ Implementacao \ Codigo \ Web \ SmartSales \ WebAPIOData \ App_Start \ WebApiConfig.cs:65   WebAPIOData.WebApiConfig.Register(HttpConfiguration config)中   C:\ Projetos \ HND022Git \ SmartSales \ Implementacao \ Codigo \网络\ SmartSales \ WebAPIOData \ App_Start \ WebApiConfig.cs:25   WebAPIOData.WebApiApplication.Application_Start()in   C:\ Projetos \ HND022Git \ SmartSales \ Implementacao \ Codigo \网络\ SmartSales \ WebAPIOData \ Global.asax.cs中:21

     

[HttpException(0x80004005):类型   'System.Nullable`1 [[System.DateTime,mscorlib,Version = 4.0.0.0,   文化=中立,PublicKeyToken = b77a5c561934e089]]'属性   “WebAPIOData.Models.Categoria”类型中的“DataAlteracaoDate”不是   支持的类型。参数名称:navigationProperty]
  System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext的   上下文,HttpApplication app)+9936761
  System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr的   appContext,HttpContext上下文,MethodInfo []处理程序)+118
  System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,   MethodInfo [] handlers,IntPtr appContext,HttpContext context)+172
  System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr的   appContext,HttpContext context)+336
  System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr的   appContext)+296

     

[HttpException(0x80004005):类型   'System.Nullable`1 [[System.DateTime,mscorlib,Version = 4.0.0.0,   文化=中立,PublicKeyToken = b77a5c561934e089]]'属性   “WebAPIOData.Models.Categoria”类型中的“DataAlteracaoDate”不是   支持的类型。参数名称:navigationProperty]
  System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9915300   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)   +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest)   wr,HttpContext context)+254

我的类有 Nullable<DateTime>

类型的属性“ DataAlteracaoDate

我正在以这种方式在ODataModelBuilder上设置实体:

builder.EntitySet<Categoria>("Categorias").EntityType.HasKey(t => t.IdCategoria);

我在我的应用程序中使用了预先发布的版本Microsoft.AspNet.OData.5.2.0-rc-140512。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:3)

OData v4不再支持DateTime。它支持的是DateTimeOffset,可以是否可为空。