我有以下问题。创建的存储过程需要来自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