Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql Linq到SQL-月初_Linq To Sql - Fatal编程技术网

Linq to sql Linq到SQL-月初

Linq to sql Linq到SQL-月初,linq-to-sql,Linq To Sql,我有一个sql语句,它会在每月的第一天返回给我: DATEADD(month, DATEDIFF(month, 0, @input), 0) 如何使用SQLFunctions.DateAdd和SQLFunctions.DateDiff重新创建此调用 如果您真的在使用LINQ to SQL,请提前感谢: var zero = new DateTime(2000, 1, 1); var resxxxx = (from p in ctx.Addresses sele

我有一个sql语句,它会在每月的第一天返回给我:

DATEADD(month, DATEDIFF(month, 0, @input), 0)
如何使用SQLFunctions.DateAdd和SQLFunctions.DateDiff重新创建此调用


如果您真的在使用LINQ to SQL,请提前感谢

var zero = new DateTime(2000, 1, 1);

var resxxxx = (from p in ctx.Addresses 
               select new { 
                          month = zero.AddMonths(SqlMethods.DateDiffMonth(zero, p.Date)) 
                          }
              ).FirstOrDefault();
重要的部分是month=zero.addmonthsqlmethods.DateDiffMonthzero,p.Date


注意,我使用了zero=newdatetime2000,1,1;,但是这个月的任何一天都可以,1980年1月1日,1983年7月1日,2100年12月1日。。。。这是SQL命令中的两个0。p、 Date是您希望计算当月第一个月的日期,因此@input。

考虑到它提供了公共语言运行时CLR方法,可以在**LINQ to Entities queries**中调用数据库中的函数。感谢您的回答-我实际上使用的是实体框架,因此不允许使用SqlMethods。但我设法从你的答案中找到了解决方案:var zero=new DateTime2000,1,1;month=SqlFunctions.DateAddmonth,SqlFunctions.DateDiffmonth,零,p,零;