我试图弄清楚如何检查我的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; }
}
答案 0 :(得分:4)
HasLogo = (section.LogoFileID.HasValue) ? "Yes" : "No";
您正在使用可以为null的int64类型,因此会公开HasValue属性,为您提供所需的内容。
可空类型概述的文档:http://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx
答案 1 :(得分:1)
由于你的int64可以为空,我的首选是检查空值。
HasLogo = (section.LogoFileId != null) ? "Yes" : "No";
<强>更新强> 最初这个答案建议检查logo属性是否为null是另一种返回HasLogo值的方法,正如Tim S.在下面的评论中指出的那样,这将导致对每个测试部分进行数据库调用。