MVC3编辑模型

时间:2012-01-30 03:36:37

标签: asp.net-mvc-3 entity-framework null

我有以下型号。

 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();

由于

1 个答案:

答案 0 :(得分:4)

您需要急切加载地址属性。

return db.Persons.Include("Address").FirstOrDefault();

如果您需要延迟加载行为,则需要将Address属性标记为虚拟

[Required]
[DataType("Users")]
[Display(Name = "Adresse")]
public virtual Address Address { get; set; }