已经被Linq to entity折磨疯了,谁帮我看下这个错误.
from a in fkd.Deliveries.Take(10)
where a.OrderStatusID == 5
select new
{
week = SqlFunctions.DateName(strWeek, a.ActualSendTime.Value)
};
想返回当前日期所属第几周,结果报如下错误!!
LINQ to Entities does not recognize the method 'System.String DateName(System.String, System.Nullable`1[System.DateTime])' method, and this method cannot be translated into a store expression.
LINQ?to?Entities
[解决办法]
SqlFunctions.DateName
这个在哪儿定义的
[解决办法]
try..
SqlFunctions.DateName(strWeek, a.ActualSendTime)
[解决办法]
不用自带的,自己写一个行吗?我测试可以的
from a in fkd.Deliveries.Take(10)
where a.OrderStatusID == 5
select new
{
week = weekofyear( a.ActualSendTime.Value)
};
public static string weekofyear(DateTime dtime)
{
int weeknum = 0;
DateTime tmpdate = DateTime.Parse(dtime.Year.ToString() + "-1" + "-1");
DayOfWeek firstweek = tmpdate.DayOfWeek;
//if(firstweek)
for (int i = (int)firstweek + 1; i <= dtime.DayOfYear; i = i + 7)
{ weeknum = weeknum + 1; }
return weeknum.ToString();
}
[解决办法]
你可以把查询分成为两段,前一段使用EF,后一段使用Linq to Object。