gpt4 book ai didi

c# - 使用带有日期时间和 bool 值的自动映射器来表示 POCO 中的半天

转载 作者:行者123 更新时间:2023-11-30 22:37:49 24 4
gpt4 key购买 nike

假设我有一个存储日期范围的 POCO,如下所示:

public class DateRange()
{
public DateTime FromDate{get;set;}
public DateTime ToDate{get;set;}
}

我希望能够在范围的开始和/或结束处节省半天时间。为此,我将把我的数据显示为一个 jqueryui 日期选择器,用于起始日期和截止日期,以及每个日期选择器旁边的复选框以表示 1/2 天。我的 View 模型看起来像这样:

public class DateRangeModel()
{
public DateTime FromDate {get; set;}
public DateTime ToDate{get;set;}
public bool IsFromDateHalfDay{get; set;}
public bool IsToDateHalfDay {get; set;}
}

当为 FromDate 选中 1/2 天复选框时,我需要将实体中的 FromDate 保存为所选日期 + 12 小时,当为 ViewModel 中的 ToDate 选择 1/2 天复选框时,我需要将实体中的 ToDate 保存为所选日期 + 12 小时。

是否可以使用 Automapper 执行此操作?如果不能,您能否建议一种更好/不同的方法?我不想让 bools 代表实体中的半天,因为我想单独使用 DateTimes 进行计算。

一些示例(仍在考虑我应该如何表示 1 天和 1/2 天的范围 - 需要大量测试计算范围!):

A Date Range of 1/2 Day From 24th May to a full day 27th May:
2011-05-24 12:00:00.000 => 2011-05-28 00:00:00.000

A Date Range of Full Day From 24th May to a 1/2 day 27th May:
2011-05-24 00:00:00.000 => 2011-05-27 12:00:00.000

A Half Day on 24th May:
2011-05-24 12:00:00.000 => 2011-05-25 00:00:00.000

A Full Day on 24th May:
2011-05-24 12:00:00.000 > 2011-05-25 00:00:00.000

最佳答案

Jimmy Bogard 在这里谈论做类似的事情:http://lostechies.com/jimmybogard/2009/05/06/automapper-feature-custom-type-converters/

原则是您将创建自定义映射。在映射点,您会考虑这两个 bool 值,但它们不会出现在目标类型中。

关于c# - 使用带有日期时间和 bool 值的自动映射器来表示 POCO 中的半天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348792/

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