如何使用EF 4.1引用视图模型中的对象

时间:2011-09-14 10:30:29

标签: c# entity-framework asp.net-mvc-3 entity-framework-4 entity-framework-4.1

我正在使用ASP.NET MVC 3Entity Framework 4.1 code first

我在数据库上下文类中定义了以下内容:

public class HefContext : DbContext
{
   public DbSet<GrantApplication> GrantApplications { get; set; }
   public DbSet<MaritalStatusType> MaritalStatusTypes { get; set; }
}

我的MaritalStatusType类:

public class MaritalStatusType : IEntity
{
   public int Id { get; set; }
   public string Name { get; set; }
   public bool IsActive { get; set; }
}

在我的视图模型中,我有以下内容:

public class GrantApplicationDetailsViewModel
{
   public int MaritalStatusTypeId { get; set; }
   public MaritalStatusType MaritalStatusType { get; set; }
}

查看显示婚姻状况类型名称的代码:

<tr>
   <td><label>Marital Status:</label></td>
   <td>@Model.MaritalStatusType.Name</td>
</tr>

在我的控制器的操作方法中,我通过id获取授权应用程序对象。它具有来自授权申请表的婚姻状况类型ID。然后,我将grant应用程序对象映射到我的GrantApplicationDetailsViewModel。没关系。但是当我想在我的视图中指定婚姻状况类型的名称时,它会给我错误object not set to an instance of an object。我怎么能让这个工作?

1 个答案:

答案 0 :(得分:0)

我刚刚在我的grant应用程序对象中添加了虚拟属性,现在它似乎工作得很好。

public class GrantApplication : IEntity
{
   public int Id { get; set; }

   public int MaritalStatusTypeId { get; set; }
   public virtual MaritalStatusType MaritalStatusType { get; set; }
}