我需要将模型类中的一列定义为可为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,但我能为DateTime
和decimal
做些什么?
此外,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(。