我决定在我的项目中使用 Entity Framework 进行 O/R 映射,并使用 DataAnnotations 进行验证,现在我在尝试实现它时遇到了一个奇怪的问题。
这就是我所做的:
我有以下实体类型
Contact
*******
Int32 Id (not null, Entity Key)
Name Name (not null)
Address Address (not null)
String Phone
String Email
其中Name
和Address
是复杂类型,定义如下:
Name Address
**** *******
String First (not null) String Street (not null)
String Last (not null) String ZipCode (not null)
String City (not null)
以下类与我的实体位于相同的命名空间中:
public class ContactMetadata
{
[Required]
public Name Name { get; set; }
}
[MetadataType(typeof(ContactMetadata))]
partial class Contact { }
但是,当我创建一个新Contact
项目时,Name
andAddress
类型填充了所有值的实例Name
和Address
位置null
,而不是Name
它们本身Address
具有null
值。因此,该Required
属性不会引发任何错误,尽管所有值都是null
. 我该如何解决这个问题?