我对Action返回给我的错误感到困惑。我有我的经理代码:Json的实体框架模型结果
public class AddressesManager
{
private SiteDBEntities entityContext;
public Addresses GetAddress(short id)
{
entityContext = new SiteDBEntities();
var addressList = entityContext.Addresses.Where(a => a.Id == id).FirstOrDefault();
entityContext.Dispose();
return addressList;
}
}
和行动调用这个函数:
[HttpPost]
public ActionResult LoadAddress(short id)
{
AddressesManager mngr = new AddressesManager();
Addresses address = mngr.GetAddress(id);
return new JsonResult() { Data = address };
}
和jQuery代码至极呼叫thit行动:
$.post("/Cart/LoadAddress", { id: id })
.success(function (data) {
console.log(data);
})
.fail(function (e) { console.log(e) });
行动正在运行,但我总是得到500错误惠特代码:
T他的ObjectContext实例已经处理完毕,不能再用于需要连接的操作。
据我所知,问题是与entityContext,但为什么会发生这种情况?我已经从执行DB数据,我也不需要连接了...
编辑:
Thit是我的地址模型。它由EF自动生成:
public partial class Addresses
{
public int Id { get; set; }
public string Title { get; set; }
public string State { get; set; }
public string Country { get; set; }
public string Warehouse { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public string Phone { get; set; }
public short DeliveryType { get; set; }
public System.Guid UserId { get; set; }
public virtual DeliveryType DeliveryType1 { get; set; }
public virtual Users Users { get; set; }
}
我查地址变量数据 - 一切OK现在和数据在这里 – dantey89
发生这种错误,因为地址类有一定的虚拟性,并且将它转换成JSON,它要得到这些虚拟财产了。 – Kahbazi
是的,你是对的。就是这个。那么避免这个错误的方法是什么?手动映射模型? – dantey89