LINQ,无法构造日期时间

发布于 2025-01-03 14:07:07 字数 1587 浏览 4 评论 0原文

我需要构造 linq,但是日期(日期时间类型,i.AllowedTime.AllowedDate.Day)、小时和分钟(int 类型)存储方式不同。我尝试做到:

        DateTime date = DateTime.Now.Date;
        IQueryable<ITW2012Mobile.Core.DataTable.MeetingModel2> result = null;
        if (status == MeetingStatus.RequestedOfYou)
        {

            result = from i in _dbContext.Meetings
                     where i.UserInvitedID == CurrentUserID && i.MeetingStatus == null && EntityFunctions.TruncateTime(i.AllowedTime.AllowedDate.Day) >= date
                     select new ITW2012Mobile.Core.DataTable.MeetingModel2()
                     {
                         Name = i.UserInviter.FirstName + " " + i.UserInviter.LastName,
                         Company = i.UserInviter.Company,
                         MeetingID = i.MeetingID,
                         Time = EntityFunctions.AddMinutes(EntityFunctions.AddHours(i.AllowedTime.AllowedDate.Day, i.AllowedTime.Hour).Value, i.AllowedTime.Minute).Value,
                         Image = i.UserInviter.ProfileImage,
                         Username = i.UserInviter.aspnet_User.UserName
                     };
        }

但有一个例外:

{"数据的日期函数 dateadd 不支持日期部分小时 输入日期。"}

怎么做?

添加了 MeetingModel2 类

public class MeetingModel2
{
    public int MeetingID { get; set; }
    public string Name { get; set; }
    public string Company { get; set; }
    public DateTime Time { get; set; }
    public string Image { get; set; }
    public string Username { get; set; }
}

I need to construct linq, but day (date time type, i.AllowedTime.AllowedDate.Day), hours and minutes (int type) stores differently. I try to make it:

        DateTime date = DateTime.Now.Date;
        IQueryable<ITW2012Mobile.Core.DataTable.MeetingModel2> result = null;
        if (status == MeetingStatus.RequestedOfYou)
        {

            result = from i in _dbContext.Meetings
                     where i.UserInvitedID == CurrentUserID && i.MeetingStatus == null && EntityFunctions.TruncateTime(i.AllowedTime.AllowedDate.Day) >= date
                     select new ITW2012Mobile.Core.DataTable.MeetingModel2()
                     {
                         Name = i.UserInviter.FirstName + " " + i.UserInviter.LastName,
                         Company = i.UserInviter.Company,
                         MeetingID = i.MeetingID,
                         Time = EntityFunctions.AddMinutes(EntityFunctions.AddHours(i.AllowedTime.AllowedDate.Day, i.AllowedTime.Hour).Value, i.AllowedTime.Minute).Value,
                         Image = i.UserInviter.ProfileImage,
                         Username = i.UserInviter.aspnet_User.UserName
                     };
        }

but got an exception :

{"The datepart hour is not supported by date function dateadd for data
type date."}

how to do it?

ADDED class MeetingModel2

public class MeetingModel2
{
    public int MeetingID { get; set; }
    public string Name { get; set; }
    public string Company { get; set; }
    public DateTime Time { get; set; }
    public string Image { get; set; }
    public string Username { get; set; }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神魇的王 2025-01-10 14:07:07

您正在查询的数据库中的“时间”字段可能是日期 数据类型。您无法执行时间操作,例如向日期类型添加分钟或小时。如果您将该字段更改为 DateTime 您可能会没事。

The field "Time" in the database you're querying is likely a Date data type. You cannot perform time operations like adding minutes or hours to a Date type. If you changed that field to be a DateTime you'd probably be okay.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文