gpt4 book ai didi

c# - 匿名类型的 IQueryable

转载 作者:太空狗 更新时间:2023-10-29 17:48:25 26 4
gpt4 key购买 nike

我使用 EntityFramework,我正在使用匿名类型查询和返回部分数据。目前我正在使用 IQueryable<dynamic> , 它有效,但我想知道这是否是正确的方法,或者是否有其他我不知道的返回数据类型。

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});
}

最佳答案

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

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));
}

关于c# - 匿名类型的 IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11982714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com