簡體   English   中英

在導航屬性上定義數據注釋

[英]Defining data annotations on a navigational property

我有一個Person類。 一個人有名字和稱呼。 稱呼是數據庫中的另一個表(我繼承了數據庫)。

在UI中,我希望Salutation成為必填字段。 這是我的模型的樣子:

public partial class Person
    {
        public virtual string Id { get; set; }

        public virtual Nullable<long> SalutationId { get; set; }

        [Required]
        public virtual Salutation Salutation { get; set; }

        public virtual string FirstName { get; set; }

        [DisplayName("Last Name")]
        public virtual string LastName { get; set; }
    }

    public partial class Salutation
    {
        public virtual long Id { get; set; }

        public virtual string SalutationName { get; set; }

        public virtual string Status { get; set; }

        public virtual ICollection<Person> People { get; set; }
    }

它是否正確? 即使我已經進入Salutation,我仍然會收到一個驗證錯誤,上面寫着“稱呼是必填字段”。

這一切都是在一個小時前開始的,直到一切正常。

如果我有時間思考並且沒有追逐截止日期,我會自己解決這個問題。 奇怪壓力對你的想法有什么影響。

簡答:問題出在您為稱呼進行必要驗證的地方

您的稱呼驗證屬性應放在Salutation model

編輯:除此之外,您的模型在每個屬性上使用public virtual訪問修飾符。 如果我的模型不需要,我會刪除virtual

@ElYusubov是正確的,但是: Person.SalutationId不應該是Nullable

public partial class Person
{
  public virtual long SalutationId { get; set; }
  ...

這意味着每個Person對象必須具有有效的SalutationId ,這反過來意味着數據庫中的相關Salutation記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM