Как проверить LINQ SQL / запрос его NULL или нет - MVC - PullRequest
0 голосов
/ 05 июля 2018

В моем действии у меня есть три LINQ SQL (Join), два из которых bla4,bla5 работали, пока я не добавил третий SQL, который bla6 и SQL(bla6) будет работать или выполняться только до получения таблицы RMAHistory. data / value или имеют данные в нем, и таблица RMAHistory не получит значение / данные, пока пользователь не отправит форму до того, как все строки будут пустыми в таблице RMAHistory, а в моем LINQ SQL (bla6) у меня есть Join с RMAHistory и, потому что у меня есть интересный столбец этой таблицы.

Вот мой вопрос, как я могу проверить, является ли SQL (bla6) нулевым, чем run / execute bla4, bla5 и затем возвращаемое представление, и если SQL (bla6) не нулевое, чем run / execute (bla4, bla5, bla6) и в обратном виде.

Я пытался проверить, является ли модальный его ноль или нет как в представлении, так и в Controller, но я получаю, что ссылка на объект не установлена ​​на экземпляр объекта, и потому что rmah.AntalRMA имеет значение null.

Может кто-нибудь помочь мне или указать мне правильное направление!
Заранее спасибо:)

Контроллер:

     public ActionResult RMA(RMAHistory oodvm ,string id, string Varenummer, string OrdreNo)
     {

     var bla6 = (from sil in data.Sales_Invoice_Line

     join rmah in data.RMA_History on sil.Document_No_ equals rmah.Fakturnummer

     where sil.Document_No_ == id

     select new RMAHistory.SingelRMAAntal

     {

      TotalRMA = rmah.AntalRMA

       });

var col2 = data.Sales_Shipment_Line.Where(t => t.Order_No_ == OrdreNo).Where(t => t.No_ == Varenummer).Select
  (t => new
{
 No_ = data.Sales_Invoice_Header.Where(or => or.Order_No_ == OrdreNo).FirstOrDefault().No_,
Line = t,
Serial = data.Item_Ledger_Entry.Where(ledger => ledger.Document_No_ == t.Document_No_).Where(ledger => ledger.Document_Line_No_ == t.Line_No_).ToList(),
TrackAndTrace = data.Track_and_Trace.Where(track => track.Shipping_No_ == t.Document_No_).Select(tr => new { traceNR = tr.Track_and_Trace, tracePath = tr.Track_and_trace_path, Agent = tr.Shipping_agent }).FirstOrDefault()

 });

 var bla4 = col2.Select(t =>
         new RMAHistory.OrdreRMA
        {
          //Select something
         });

      var bla5 = (from sih in data.Sales_Invoice_Header
      join sil in data.Sales_Invoice_Line on sih.No_ equals sil.Document_No_
      join item in data.Item on sil.No_ equals item.No_
      join itemcat in data.ItemCategory on item.Item_Category_Code equals itemcat.Code
         where sil.Document_No_ == id
           &&
          sil.No_ == Varenummer
           &&
          sih.Order_No_ == OrdreNo
        select new RMAHistory.InvoiceOrdreLineSingel
      {
        //Select something
     });

        oodvm.OrdreRMAs = bla4.FirstOrDefault();
        oodvm.InvoiceDetailsSingelLine = bla5.FirstOrDefault();
        oodvm.SingelRMAAntals = bla6.FirstOrDefault();
        return View(oodvm);

       }

RMAHistory ViewModel:

public class RMAHistory
    {

   public SingelRMAAntal SingelRMAAntals { get; set; }

        public class SingelRMAAntal
        {

            public SingelRMAAntal()
            {



            }
            public SingelRMAAntal(string TotalRMA)
            {
                this.TotalRMA = TotalRMA;

            }


            public string TotalRMA { get; set; }

        }

    }

Вид:

@using NameSpace.Models
@model RMAHistory

<div class="content">
 <form id="RMAForm">

   <input type="text" id="Kundenavn" value="@Model.InvoiceDetailsSingelLine.Kundenavn">
   <br/>
   <input id="Ordrenummer" type="text" value="@Model.InvoiceDetailsSingelLine.Ordrenummer">
   <br/>

  if (Model.SingelRMAAntals.TotalRMA == null)

   {

     <div style="display:none;" class="col-md-3">

    <input name="Antal_RMA" id="Antal_RMA" value="@Model.SingelRMAAntals.TotalRMA">

    </div>

  }

    else
   {
        <div class="col-md-3">

       <input name="Antal_RMA" id="Antal_RMA" value="@Model.SingelRMAAntals.TotalRMA">

       </div>
   }


</form>
</div>

1 Ответ

0 голосов
/ 05 июля 2018

Измените свой вид, чтобы он выглядел как показано ниже

@using NameSpace.Models
    @model RMAHistory

    <div class="content">
     <form id="RMAForm">

       <input type="text" id="Kundenavn" value="@Model.InvoiceDetailsSingelLine.Kundenavn">
       <br/>
       <input id="Ordrenummer" type="text" value="@Model.InvoiceDetailsSingelLine.Ordrenummer">
       <br/>

     if (Model != null)
    {
        if (Model.SingelRMAAntals != null)
        {
            if (Model.SingelRMAAntals.TotalRMA == null)

            {

                <div style="display:none;" class="col-md-3">

                <input name="Antal_RMA" id="Antal_RMA" value="@Model.SingelRMAAntals.TotalRMA">

                </div>

            }

                else
            {
                    <div class="col-md-3">

                <input name="Antal_RMA" id="Antal_RMA" value="@Model.SingelRMAAntals.TotalRMA">

                </div>
            }

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