如何转换日期时间并从WebAPI / SQL Server中的存储过程获取结果

时间:2015-07-15 21:36:50

标签: c# entity-framework stored-procedures asp.net-web-api

我有以下问题。创建的存储过程需要来自WebAPI的输入值。该变量包含mvn test -Dsurefire.suiteXmlFiles=test1.xml,test2.xml 作为数据类型。这里创建了存储过程:

DateTime

我已将创建的存储过程添加到CREATE PROCEDURE getDatum @Dt datetime AS BEGIN SET NOCOUNT ON; -- Insert statements for procedure here SELECT b.Id, b.Datum, b.num_aucts FROM dbo.Beispiels AS b WHERE b.Datum = @Dt END GO 。自动实体框架6在Context.tt中定义了用于连接数据库的代码。

entity data model

此处定义的模型public virtual ObjectResult<getDatum_Result> getDatum(Nullable<System.DateTime> dt) { var dtParameter = dt.HasValue ? new ObjectParameter("Dt", dt) : new ObjectParameter("Dt", typeof(System.DateTime)); return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<getDatum_Result>("getDatum", dtParameter); }

getDatum_Result

我的控制器与GET-Request:

public partial class getDatum_Result
{
  public int Id { get; set; }
  public System.DateTime Datum { get; set; }
  public int num_aucts { get; set; }
}

我没有从我的角度应用程序中获得数据库的结果,因为我认为控制器错误或分配错误的值,因为当我从我的datepicker中选择日期并将其发送到我的存储过程时,值为//[ResponseType(typeof(getDatum_Result))] public IHttpActionResult GetDatum() { /*Only an example*/ DateTime datum = new DateTime(01-03-2014); //getDatum_Result beispiel = db.getDatum(datum).FirstOrDefault(); var beispiel = db.Beispiels.SqlQuery("dbo.getDatum @Dt", datum).Single(); if (beispiel == null) { return NotFound(); } return Ok(beispiel); } 但在数据库中,值为2013-01-03T23:00:00。任何人都可以帮助我吗?

编辑:

在我的控制器中发生更改后,我收到以下错误消息:

  

编译错误:Ticks必须介于DateTime.MinValue.Ticks和DateTime.MaxValue.Ticks之间。参数名称:ticks

0 个答案:

没有答案