IQueryable for Anonymous Types

I use EntityFramework, I query and return partial data using Anonymous types. I am currently using IQueryable<dynamic> , it works, but I would like to know if this is suitable for this, or if there is some other return data type that I don't know about.

 public IQueryable<dynamic> 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 { y.EventId, y.EventTitle, y.DataTimeStart}); } 
+6
source share
1 answer

Usually you use anonymous types only within the scope of a single method. You do not return anonymous types to the caller. If this is what you want to do, you should create a class and return it:

 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<Event> 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)); } 
+9
source

Source: https://habr.com/ru/post/923011/


All Articles