正在检查EF6模型的属性以查看它是否有值



我正试图找出如何检查我的EF 6模型的属性,看看它是否包含值。属性是INt64,所以我不能使用string.Empty,也不能只将其与空字符串进行比较而不进行转换。如果"LogoFileID"中没有值,我如何修改此检查,使其返回"否"?

HasLogo = (section.LogoFileID != string.Empty) ? "Yes" : "No";

这是我的型号

public class Section
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Int16 ID { get; set; }
    public Int64? LogoFileID { get; set; }
    [Required, MaxLength(250), Column(TypeName = "varchar")]
    public string RouteName { get; set; }
    [Required, MaxLength(15), Column(TypeName = "varchar")]
    public string Type { get; set; }
    [Required]
    public string Title { get; set; }
    public string Synopsis { get; set; }
    [ForeignKey("LogoFileID")]
    public virtual File Logo { get; set; }
}
HasLogo = (section.LogoFileID.HasValue) ? "Yes" : "No";

您使用的是一个可为null的int64类型,因此会公开一个HasValue属性,以提供您想要的内容。

可为null类型概述的文档:http://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx

由于您的int64是可以为null的,我的首选项是检查null值。

HasLogo = (section.LogoFileId != null) ? "Yes" : "No";

更新:最初,这个答案表明,检查徽标属性是否为null是返回HasLogo值的另一种方式,正如Tim S.在下面的评论中指出的那样,这将导致对测试的每个部分进行DB调用。

最新更新