我有一个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,我仍然会收到一个验证错误,上面写着“称呼是必填字段”。
这一切都是在一个小时前开始的,直到一切正常。
如果我有时间思考并且没有追逐截止日期,我会自己解决这个问题。很奇怪你的压力是什么压力。答案 0 :(得分:3)
简答:问题出现在您需要验证的地方。
您的称呼验证属性应放在Salutation model
。
修改:除了您的模型在每个媒体资源上使用public virtual
访问修饰符。如果我的模型不需要,我会删除virtual
。
答案 1 :(得分:2)
@ElYusubov是正确的,但是:Person.SalutationId
不应该是Nullable
public partial class Person
{
public virtual long SalutationId { get; set; }
...
这意味着每个Person
对象必须具有有效的SalutationId
,这反过来又意味着数据库中的相关Salutation
记录。