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