我有以下型号。
public class Person
{
public Guid ID { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Prénom")]
public string FirstName { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Nom")]
public string LastName { get; set; }
[Required]
[DataType("Users")]
[Display(Name = "Adresse")]
public Address Address { get; set; }
如您所见,它包含一个公共字段的地址类型:
public class Address
{
public Guid ID { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Rue")]
public string Street { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Ville")]
public string City { get; set; }
[Required]
[DataType(DataType.Text)]
[Display(Name = "Province")]
public string Province { get; set; }
创建新实例没问题。人员和地址都会发布到数据库中
[HttpPost]
public ActionResult Create(Person model)
{
if (ModelState.IsValid)
{
db.Persons.Add(model);
db.SaveChanges();
我想了解为什么当我使用以下命令从db中检索Person时,Address始终为NULL。
return db.Persons.FirstOrDefault();
由于
答案 0 :(得分:4)
您需要急切加载地址属性。
return db.Persons.Include("Address").FirstOrDefault();
如果您需要延迟加载行为,则需要将Address
属性标记为虚拟
[Required]
[DataType("Users")]
[Display(Name = "Adresse")]
public virtual Address Address { get; set; }