C# LINQ从DateTime列中选择MonthId和MontName

C# LINQ从DateTime列中选择MonthId和MontName,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我无法从db中的DateTime列中选择MonthId和MonthName。 我试过这个。它编译但运行时出错 “linq to实体无法识别方法'System.String.ToString()'” 有人吗?ActualEta在这里是一个可为空的日期时间 var months = bookings .AsEnumerable() .Select(c => new { MonthId = c.ActualEta.Value.Month, Mon

我无法从db中的DateTime列中选择MonthId和MonthName。 我试过这个。它编译但运行时出错 “linq to实体无法识别方法'System.String.ToString()'”

有人吗?ActualEta在这里是一个可为空的日期时间

var months = bookings
    .AsEnumerable()
    .Select(c => new { 
        MonthId = c.ActualEta.Value.Month,
        MonthName = c.ActualEta.Value.Month.ToString("MMMM")
    }).ToList();
请注意
AsEnumerable()
,这实际上是将查询从LinqToEntities转换为LINQToObject,从而允许您使用非SQL方法,如
ToString()

请注意
AsEnumerable()
,这实际上是将查询从LinqToEntities转换为LinqToObject,允许您使用非SQL方法,如
ToString()

示例:“c.actualta.Value.ToString(“MMMM”),而不使用“Month”属性。谢谢。示例:“c.actualta.Value.ToString(“MMMM”)”,不带“Month”属性。谢谢
var months = bookings
    .AsEnumerable()
    .Select(c => new { 
        MonthId = c.ActualEta.Value.Month,
        MonthName = c.ActualEta.Value.Month.ToString("MMMM")
    }).ToList();
var months = bookings.Select(c => new { 
     MonthId = ((DateTime)c.ActualEta.Value).Month,
     MonthName = ((DateTime)c.ActualEta.Value).ToString("MMMM")
}).ToList();