3

我有一個Person類。一個人有一個名字和一個稱呼。稱呼是數據庫中的另一個表格(我繼承了數據庫)。在導航屬性中定義數據註釋

在用戶界面中,我希望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,我仍然收到一個驗證錯誤,指出「稱呼是必填字段」。

所有這一切開始只是一個小時前,直到一切工作正常。

如果我有時間思考並且沒有追趕最後期限,那麼我自己就會把這個問題弄砸了。奇怪的是你的思想面臨着什麼樣的壓力。

回答

3

簡答:問題在您要求驗證的地方您的稱呼。

您的稱謂驗證屬性應放在Salutation model之內。

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

+2

哦該死!我無法思考。謝謝。我已經做了所有這些東西多年(現在2年)。只是因爲我很急,所以我根本無法思考。非常感謝。 –

+2

如果我不需要代理服務器,請刪除虛擬機的好處。性能明智的。謝謝。 –

+0

@ WaterCoolerv2,沒問題 –

2

@ElYusubov是正確的,但也:Person.SalutationId不宜Nullable

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

這意味着每Person對象必須有一個有效的SalutationId,這又意味着在數據庫中的相關記錄Salutation

+0

謝謝。我同意。在很多限制條件下工作。無法對數據庫執行任何操作。數據庫不是最好的。我提出了一個非常簡化的模型。我真的在苦苦掙扎。 –

相關問題