Не можете вернуть один класс с несколькими списками таблиц? - PullRequest
0 голосов
/ 28 мая 2018

Я получил ошибку при просмотре с сообщением об ошибке:

The ObjectContext instance has been disposed. ....

Мой класс модели просмотра:

public class TruckLUOrderVD
{
    public raTMS_TruckLoadingOrder TruckLoadingOrder { get; set; }
    public List<raTMS_CompartmentLoadingOrder> TruckCompartment { get; set; }      
    public List<raTMS_Tank> TankTruck { get; set; }
    public List<SelectListItem> LTank { get; set; }
    public int LJetty { get; set; }
    public List<raTMS_ShipAgent> Agent { get; set; }

    public List<raTMS_Ship> Ship { get; set; }

    public List<string> service = new List<string> { "Loading", "Unloading"};
    public List<SelectListItem>  modeList { get; set; }

    public List<Boolean> compartmentEnabled { get; set; }

    public string shiptype { get; set; }
    public Boolean multiolder { get; set; }
    public string maxcmp { get; set; }
    public string serviceval { get; set; }

    public string statusname { get; set; }

    public string serviceAutoNumber { get; set; }

    public string[] productnm { get; set; }
}

Finnaly У меня есть Ajax для получения от действия контроллера

public JsonResult Getdetail(int id)
{
    raTMS_Tank TANK = new raTMS_Tank();
    raTMS_Ship Ship = new raTMS_Ship();
    raTMS_ShipAgent agent = new raTMS_ShipAgent();
    raTMS_ShipOrder order = new raTMS_ShipOrder();
    raTMS_ShipTankUnloadingOrder stank = new raTMS_ShipTankUnloadingOrder();
    raTMS_TruckLoadingOrder SR = new raTMS_TruckLoadingOrder();

    List<raTMS_TruckLoadingOrder> ListA = new List<raTMS_TruckLoadingOrder>();
    List<raTMS_CompartmentLoadingOrder> ListB = new List<raTMS_CompartmentLoadingOrder>();
    List<raTMS_ShipTankUnloadingOrder> ListC = new List<raTMS_ShipTankUnloadingOrder>();

    TruckLUOrderVD vd = new TruckLUOrderVD();

    using (raTMSEntities2 db = new raTMSEntities2())
    {
        var c = db.raTMS_CompartmentLoadingOrder.Where(x => x.TruckLoadingOrderFK == id).ToList();
        SR = db.raTMS_TruckLoadingOrder.Where(x => x.PriKey == id).FirstOrDefault();

        for (int i = 0; i < SR.raTMS_Truck.CompartmentNumber; i++)
        {
            var c1 = c.Where(x => x.CompartmentNumber == i + 1).FirstOrDefault();
            if (c1 != null)
            {
                ListB.Add(c1);
                ListB[i].OrderPrikey = c1.OrderFK;
                ListB[i].FQTransact = c1.raTMS_Order.TansactQty.GetValueOrDefault();

                ListB[i].AQReserved = c1.raTMS_Order.ReservedQty.GetValueOrDefault();
            }
            else
            {
                ListB.Add(new raTMS_CompartmentLoadingOrder());
            }
        }

        raTMS_Status stat = new raTMS_Status();

        vd.statusname = stat.getStatusName(SR.Status.Value);

        vd.TruckLoadingOrder = SR;
        vd.TruckCompartment = ListB;

        return Json(new { vd = vd }, JsonRequestBehavior.AllowGet);
    }
}

Я пытался настроить некоторые объекты, такие как LazyLoading и ProxyCreationEnabled.

db.Configuration.LazyLoadingEnabled = false;
db.Configuration.ProxyCreationEnabled = false;

Я не могу получить данные через Ajax.Он может быть успешно возвращен классами моделей представления без Json, мне нужно выполнить это действие без перезагрузки страницы.Я получил сообщение об ошибке, как указано выше.Любая ошибка с моим Linq?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...