C# 在EF6中将字符串列设置为可空
我有一个由EF6创建的模型:C# 在EF6中将字符串列设置为可空,c#,asp.net-mvc,entity-framework,asp.net-mvc-4,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,我有一个由EF6创建的模型: public partial class Comment { [DisplayName("شناسه نظر")] public int Id { get; set; } [Required(ErrorMessage = "متن نظر را وارد کنید")] [DisplayName("متن نظر")] public string CommentText { get; set; } [Display
public partial class Comment
{
[DisplayName("شناسه نظر")]
public int Id { get; set; }
[Required(ErrorMessage = "متن نظر را وارد کنید")]
[DisplayName("متن نظر")]
public string CommentText { get; set; }
[DisplayName("تعداد پسندیدن ")]
public long LikeCount { get; set; }
[DisplayName("تعداد نپسندیدن")]
public long DisLikeCount { get; set; }
[DisplayName("تاریخ انتشار ")]
public System.DateTime PublishDate { get; set; }
[DisplayName("وضعیت نمایش ")]
public string Visible { get; set; }
[DisplayName("نام کاربری ")]
public Nullable<string> AutherUserName { get; set; }
[DisplayName("شناسه نظراصلی")]
public Nullable<int> CommentFKId { get; set; }
[DisplayName("شناسه کاربر")]
public Nullable<int> StudentId { get; set; }
[DisplayName("شناسه محتوا ")]
public Nullable<int> ContentId { get; set; }
public virtual Comment Comments { get; set; }
public virtual Comment Comment1 { get; set; }
public virtual Student Student { get; set; }
public virtual Content Content { get; set; }
}
公共部分类注释
{
[显示名称(“显示名称”)
公共int Id{get;set;}
[必需(ErrorMessage=“متنظتتتتکنید”)]
[显示名称(“显示名称”)]
公共字符串注释文本{get;set;}
[显示名称(“显示名称”)]
公共long-LikeCount{get;set;}
[显示名称(“显示名称”)]
public long DisLikeCount{get;set;}
[显示名称(“显示名称”)]
public System.DateTime PublishDate{get;set;}
[显示名称(“显示名称”)]
公共字符串可见{get;set;}
[显示名称(“显示名称”)
公共可为空的AutherUserName{get;set;}
[显示名称(“显示名称”)]
公共可为空的CommentFKId{get;set;}
[显示名称(“显示名称”)]
公共可为空的StudentId{get;set;}
[显示名称(“显示名称”)]
公共可为空的ContentId{get;set;}
公共虚拟注释{get;set;}
公共虚拟注释Comment1{get;set;}
公共虚拟学生学生{get;set;}
公共虚拟内容{get;set;}
}
如您所见,我的模型中有几个可为null的int列,但我不能将字符串列设置为null:
public Nullable<string> AutherUserName { get; set; }
public可空AutherUserName{get;set;}
我得到了这个错误:
类型“string”必须是不可为null的值类型,才能将其用作泛型类型或方法“System.nullable”中的参数“T”
我正在使用MVC4字符串是引用类型,因此已经是“可空的”。只有值类型(如int)才可以为null,否则它们就不能为null。如果您希望字符串中包含null,则即使您的ui为空,您也可以在属性的setter中执行此操作。因此,您的意思是,如果我列的textbox为空,它将为null?如果模型上的string属性的值为null,那么它将是空的是。如果它是“blank”(空字符串),那么它就不会为null。要使字符串列不可为null,还需要使用[Required]属性。如果我的数据库首先
notnull
design生成了一个带有普通string
属性的类,有什么建议吗?它没有包含[Required]属性,但在其建模过程中,它假定该列为非null
;是否有一种流动的方法来确保属性为null
?如果不是的话就换掉它?