Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在EF6中将字符串列设置为可空_C#_Asp.net Mvc_Entity Framework_Asp.net Mvc 4 - Fatal编程技术网

C# 在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

我有一个由EF6创建的模型:

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
?如果不是的话就换掉它?