2014-04-05 82 views
10

可空我有我創建它BU EF6模型:設置字符串列在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列在我的模型,但我不能字符串列設置爲null:

public Nullable<string> AutherUserName { get; set; } 

而且我得到了這個錯誤:

類型「字符串」必須是一個非爲了在通用類型或方法「System.Nullable」

我正在與MVC4工作

+0

可能的重複http://stackoverflow.com/questions/9236468/the-type-string-must-be-a-non-nullable-type-in​​-order-to-use-it-as-parameter- t –

+0

如果你想在字符串中有null,即使你的UI給出了一個空白,你也可以在屬性的setter中做到這一點。 –

回答

19

字符串是參考的類型,所以已經「可爲空的,以使用它作爲參數「T」 -nullable值類型」。只有值類型(如int)可以爲空,否則它們不能爲空。

+0

那麼你的意思是如果我的列的文本框是空的,它將會是空的? –

+4

如果模型上的字符串屬性的值爲null,那麼它將爲空yes。如果它是「空白」(空字符串),那麼它不會爲空。對於字符串列不可爲空,也可以使用[Required]屬性。 –

+0

任何建議,如果我的數據庫優先'非空'設計生成一個普通的'字符串'屬性的類?它沒有包含[Required]屬性,但是在它的ModelBuilding中,它可能確定該列是'not-null';有沒有流暢的方式來確保該屬性是'空'?如果不是,請更改它? –