比较C#ASP.NET MVC LINQ实体框架中的两个列表

夸脱学

如标题所示,即时通讯试图比较带时间戳的日期时间和带时间戳的日期时间。

我有一个flex变量,它将获取一个工作日(8h)这两个日期之间的差值。

“如果我在08:00戳记并在17:00戳记,则我的弹性为+1(h)”

模型:

public class FlexModel
{
    public List<User> Users { get; set; }
    public List<Stamping> Stampings { get; set; } 
    public decimal FlexTime { get; set; }
}

public partial class Stamping
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Required]
    public int UserId { get; set; }

    [Required]
    [DataType(DataType.DateTime)]
    public DateTime Timestamp { get; set; }

    [Required]
    [StringLength(3)]
    public string StampingType { get; set; }

    public virtual User User { get; set; }
}

看法:

@Html.LabelFor(model => model.FlexTime, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
    @Html.DisplayFor(model => model.FlexTime, new { htmlAttributes = new { @class = "form-control" } })
    @Html.ValidationMessageFor(model => model.FlexTime, "", new { @class = "text-danger" })
</div>

控制器:

public ActionResult Info()
{
    var flexModel = new FlexModel();
    var userId = (int)Session["userId"];
    var user = _db.Users.Find(userId);
    var stampIn = _db.Stampings
                     .Where(i => i.StampingType == "in")
                     .Where(i => i.User == user)
                     .ToList();

    var stampOut = _db.Stampings
                      .Where(i => i.StampingType == "out")
                      .Where(i => i.User == user)
                      .ToList();

    var workDay = 8;

    if (stampIn.Count == 0)
    {
        return View();
    }

    foreach (var itemIn in stampIn)
    {
        //Dont know what to do here
    }

    foreach (var itemOut in stampOut)
    {
        //Dont know what to do here either
    }

    return View();
}

请帮忙。

戴维

您可以像这样关联列表:

var attendance = from sin in stampIn
                 select new 
                 {
                    StampIn = sin,
                    StampOut = stampOut.FirstOrDefault(sout => 
                                    sout.Timestamp > sin.Timestamp)
                 };

这为您提供了一个踩踏与踩踏事件的列表(尽管踩踏可能为空)。然后,您需要像这样计算弹性时间:

var flexitime = from att in attendance
                select new
                {
                    TimeIn = att.StampIn.Timestamp,
                    TimeOut = att.StampOut == null ? (DateTime?)null : att.StampOut.Timestamp,
                    TotalTime = att.StampOut == null ? 0 :  
                        att.StampOut.Timestamp.Subtract(att.StampIn.Timestamp).TotalHours
                };

您现在可以将其转换为您的FlexModel对象(我仅填写该FlexTime属性,因为不确定如何/为什么需要其他属性):

var workDay = 8;
var flexModel = new FlexModel 
{
    FlexTime = Convert.ToDecimal(flexitime
                   .Sum(f => f.TotalTime - workDay))
};
return View(flexModel);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

c#获取每个组ASP.NET MVC实体框架中存在的记录

来自分类Dev

c#asp mvc ErrorMessage应该包含另一个变量/属性值

来自分类Dev

从ASP.Net MVC5中的两个EF模型创建ViewModel

来自分类Dev

如何在razor MVC asp.net中合并两个视图模型

来自分类Dev

ASP.NET MVC表单提交中的两个不同按钮

来自分类Dev

比较C#ASP.NET MVC LINQ实体框架中的两个列表

来自分类Dev

在ASP.NET MVC5中的两个日期值之间查询

来自分类Dev

绑定模型中的两个表-ASP.NET MVC Razor

来自分类Dev

带有实体框架的ASP .NET MVC 5中的并发

来自分类Dev

asp.net mvc ajax发送两个参数

来自分类Dev

Asp.Net MVC LINQ查询以检查两个日期之间是否已经存在协议

来自分类Dev

在实体框架ASP.NET MVC中的LINQ到实体中构造查询

来自分类Dev

如何在C#ASP NET Core中的后台服务内部使用Mediator?

来自分类Dev

c#获取每个组ASP.NET MVC实体框架中存在的记录

来自分类Dev

比较两个表ID。ASP.NET MVC

来自分类Dev

从ASP.Net MVC5中的两个EF模型创建ViewModel

来自分类Dev

从ASP.net MVC实体框架的单个视图中的两个表联接后如何显示记录

来自分类Dev

如何在razor MVC asp.net中合并两个视图模型

来自分类Dev

ASP.NET MVC表单提交中的两个不同按钮

来自分类Dev

“你调用的对象是空的。” 嵌套列表ASP.NET MVC LINQ实体框架

来自分类Dev

使用ASP.NET MVC5 Identity框架将单独的用户集存储在两个表或单个表中?

来自分类Dev

使用实体框架和ASP.NET MVC从列表中反转分区结果

来自分类Dev

使用c#Asp .net MVC将视频上传到Youtube

来自分类Dev

ASP.NET MVC LINQ实体框架递归

来自分类Dev

在ASP.NET Core MVC中创建实体列表

来自分类Dev

实体框架中的 System.NotSupportedException (ASP.NET MVC)

来自分类Dev

Asp.NET MVC中与Linq的数组比较

来自分类Dev

在asp.net mvc中使用两个主题

来自分类Dev

如何使用 ASP.NET MVC 和实体框架在 C# 中创建注销

Related 相关文章

  1. 1

    c#获取每个组ASP.NET MVC实体框架中存在的记录

  2. 2

    c#asp mvc ErrorMessage应该包含另一个变量/属性值

  3. 3

    从ASP.Net MVC5中的两个EF模型创建ViewModel

  4. 4

    如何在razor MVC asp.net中合并两个视图模型

  5. 5

    ASP.NET MVC表单提交中的两个不同按钮

  6. 6

    比较C#ASP.NET MVC LINQ实体框架中的两个列表

  7. 7

    在ASP.NET MVC5中的两个日期值之间查询

  8. 8

    绑定模型中的两个表-ASP.NET MVC Razor

  9. 9

    带有实体框架的ASP .NET MVC 5中的并发

  10. 10

    asp.net mvc ajax发送两个参数

  11. 11

    Asp.Net MVC LINQ查询以检查两个日期之间是否已经存在协议

  12. 12

    在实体框架ASP.NET MVC中的LINQ到实体中构造查询

  13. 13

    如何在C#ASP NET Core中的后台服务内部使用Mediator?

  14. 14

    c#获取每个组ASP.NET MVC实体框架中存在的记录

  15. 15

    比较两个表ID。ASP.NET MVC

  16. 16

    从ASP.Net MVC5中的两个EF模型创建ViewModel

  17. 17

    从ASP.net MVC实体框架的单个视图中的两个表联接后如何显示记录

  18. 18

    如何在razor MVC asp.net中合并两个视图模型

  19. 19

    ASP.NET MVC表单提交中的两个不同按钮

  20. 20

    “你调用的对象是空的。” 嵌套列表ASP.NET MVC LINQ实体框架

  21. 21

    使用ASP.NET MVC5 Identity框架将单独的用户集存储在两个表或单个表中?

  22. 22

    使用实体框架和ASP.NET MVC从列表中反转分区结果

  23. 23

    使用c#Asp .net MVC将视频上传到Youtube

  24. 24

    ASP.NET MVC LINQ实体框架递归

  25. 25

    在ASP.NET Core MVC中创建实体列表

  26. 26

    实体框架中的 System.NotSupportedException (ASP.NET MVC)

  27. 27

    Asp.NET MVC中与Linq的数组比较

  28. 28

    在asp.net mvc中使用两个主题

  29. 29

    如何使用 ASP.NET MVC 和实体框架在 C# 中创建注销

热门标签

归档