在模型类(ASP.NET)中将列定义为可为null



我需要将模型类中的一列定义为可为null。在里面NET Core,在数据类型声明中添加?就可以了。但在这种情况下我该怎么办?

我创建的模型是

public class Company
{
[Key]
public int ID { get; set; }
[Required]
public string CompanyName { get; set; }
[Required]
public string Address { get; set; }
[Required]
public string CompanyEmail { get; set; }
[Required]
public string ClientName { get; set; }
public string ClientEmail { get; set; } = string.Empty;
[Required]
public string PrimaryContact { get; set; }
public string SecondaryContact { get; set; } = string.Empty;
[Required]
public string Software { get; set; }
public DateTime ContractDate { get; set; }
public DateTime AMCDate { get; set; }
public decimal ContractAmount { get; set; }
public string AnydeskID { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
}

string.Empty似乎适用于字符串Datatype,但我能为DateTimedecimal做些什么?

此外,DataTime同时接受日期和时间,有没有办法只将日期作为其值?

DateTime和decimal是不可为null的数据类型。这意味着它们具有默认值,并且要用作可为null的值,必须使用"?"。

要只得到日期或时间你可以你这些代码

var MyDate = DateTime.Now;
var MyDay = MyDate.Date;
var MyTime = MyDate.TimeOfDay;

您可以使用default设置默认值。(对于DateTime,应为0001年1月1日00:00:00(

public DateTime DateTime {get; set;} =default;

由于DateTime是不可为null的类型,因此DateTime将包含DateTime默认值。如果DateTime需要为null,可以执行以下操作:

public DateTime? DateTime {get; set;} =default;

现在DateTime将为null,因为null是可为null的类型的默认值。

如果您使用的是代码优先的数据库设计,那么如果您使用?在属性上(对于字符串等通常可以为null的类型,这是真的(

对于可为空的Datetime,您可以使用

public DateTime? PropertyName {get; set;}

对于可为空的十进制

public Decimal? PropertyName {get; set;}

仅供日期

如果您想要标准方法,请查看DateTime。Date属性,只提供DateTime的日期部分,时间值设置为12:00:00午夜(00:00:00(。

相关内容

  • 没有找到相关文章

最新更新