日期:2014-05-20  浏览次数:20861 次

Linq EF int转换为字符串
from a in Tables group a by 
new {a.Year,a.Month}
select new Entity
{
   Month = a.Year + "-" + a.Month
}

----------------
a.Year和a.Month都为int,Entity.Month为string
上述查询会报错,请问该如何正确实现?

------解决方案--------------------
a.Year.ToString() + "-" + a.Month.ToString()
------解决方案--------------------
var list=DB.Tables.GroupBy(g=>g.Year.ToString()+'-'+g.Month..ToString()).Select(t=>{return new{YearMonth=t.key};}).ToList();
------解决方案--------------------
ToList.....那些非延迟查询可以用了 ,或者如下

 var query=Tables.GroupBy(g=>new{g.Year,g.Month}).Select(s=>new{s.Key.Year,s.Key.Month});
 var result=query.AsEnumerable().Select(s=>new Entity{s.Year+"-"+s.Month});
 result=result.ToList();

------解决方案--------------------
引用:
我建议你好好看看LINQ的基础,group by写法上有问题:

from a in Tables group a by 
new {a.Year,a.Month} into g
select new Entity
{
   Month = SqlFunctions.StringConvert((double)g.Key.Year) + "-" + SqlFunctions.StringConvert((double)g.Key.Month)
}