[英]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.