var变量没有保存返回对象

时间:2014-07-11 19:55:17

标签: asp.net-mvc repository-pattern

问题:

使用Repository设计模式,使用层:Core,Data,Service和Presentation,在Presentation层中,我们有一个名为“Edit”的Controller操作方法。

Action方法调用SpaceService.GetSpace方法,该方法返回带有数据的对象(在调试应用程序时已经验证)但是,返回对象没有被分配给var空间?单步执行此行代码后,var space为null。

model.Inactive = space.Inactive;

引发的错误是“对象引用未设置为对象的实例。”(NullReferenceException)

对于为什么var空间变量没有被赋予GetSpace方法返回的值的任何想法,将不胜感激。

** 代码 **

控制器操作方法

public ActionResult Edit(Guid id)
{
   var space = SpaceService.GetSpace(id);

   var model = new SpaceEditModel();

   try
      {
        model.Inactive = space.Inactive;
        model.SpaceDef = space.SpaceDef;
        model.LocationID = space.LocationID;
      }
   catch (Exception ex)
      {
        Response.Write(ex.InnerException.ToString());
      }

    return View(model);
}

Service method

public Space GetSpace(Guid id)
{
    return UnitOfWork.Repository<Space>().FindById(id);
}

空间实体

public class Space : BaseEntity
{

    #region private members

    private ICollection<SpaceAddress> _spaceAddress;

    #endregion


    public string SpaceDef { get; set; }
    public bool Inactive { get; set; }

    #region foreign key
    public Guid LocationID { get; set; }
    #endregion

    #region navigation property
        public virtual Location Location { get; set; }
    #endregion

    public virtual ICollection<SpaceAddress> SpaceAddresses
    {
        get { return _spaceAddress ?? (_spaceAddress = new List<SpaceAddress>()); }
        protected set { _spaceAddress = value; }
    }

}

0 个答案:

没有答案