适用于匿名类型的IQIeryable

我使用EntityFramework,我正在查询并使用匿名类型返回部分数据。 目前我正在使用IQueryable ,它可以工作,但我想知道这是否是正确的方法,或者是否有其他一些我不知道的返回数据类型。

 public IQueryable FindUpcomingEventsCustom(int daysFuture) { DateTime dateTimeNow = DateTime.UtcNow; DateTime dateTimeFuture = dateTimeNow.AddDays(daysFuture); return db.EventCustoms.Where(x => x.DataTimeStart > dateTimeNow & x.DataTimeStart  new { y.EventId, y.EventTitle, y.DataTimeStart}); } 

通常,只在一个方法的范围内使用匿名类型。 您不会将匿名类型返回给调用者。 如果那是你想要做的,你应该创建一个类并返回:

 public class Event { private readonly int _eventId; private readonly string _eventTitle; private readonly DateTime _dateTimeStart; public Event(int eventId, string eventTitle, DateTime dateTimeStart) { _eventId = eventId; _eventTitle = eventTitle; _dateTimeStart = dateTimeStart; } public int EventId { get { return _eventId; } } public string EventTitle { get { return _eventTitle; } } public DateTime DateTimeStart{ get { return _dateTimeStart; } } } public IQueryable FindUpcomingEventsCustom(int daysFuture) { DateTime dateTimeNow = DateTime.UtcNow; DateTime dateTimeFuture = dateTimeNow.AddDays(daysFuture); return db.EventCustoms .Where(x => x.DataTimeStart > dateTimeNow && x.DataTimeStart <= dateTimeFuture) .Select(y => new Event(y.EventId, y.EventTitle, y.DataTimeStart)); }