检查对象insde LinQ to Sql代码是否为空

问题描述 投票:0回答:1

我正在使用此示例Linq代码:

from objpath in _context.PathModel
    join objOriginalStation in _context.StationModel 
        on objpath.IdStazioneOrigine equals objOriginalStation.IDStazione
    join objDesttinationStation in _context.StationModel 
        on objpath.IdStazioneDestinazione equals objDesttinationStation.IDStazione
    join objVia1Station in _context.StationModel 
        on objpath.IdVia1 equals objVia1Station.IDStazione
    join objVia2Station in _context.StationModel 
        on objpath.IdVia2 equals objVia2Station.IDStazione
    select new NewPercorsiModel
    {
        IdPercorso = objpath.IdPercorso,
        IdSottorete = objpath.IdSottorete,
        Distanza = objpath.Distanza,
        IdStazioneDestinazione = objpath.IdStazioneDestinazione,
        IdStazioneOrigine = objpath.IdStazioneDestinazione,
        IdVia1 = objpath.IdVia1,
        IdVia2 = objpath.IdVia2,
        Versione = objpath.Versione ?? string.Empty,
        StazioneOrigineName = objOriginalStation.NomeStazione,
        StazioneDestinazioneName = objDesttinationStation.NomeStazione,
        Via1Name = objVia1Station.NomeStazione,
        Via2Name = objVia2Station.NomeStazione ?? string.Empty
    };

首先,我的问题是,我是否有更好的解决方案来改进代码?

第二个也是重要的问题是我如何检查对象的可空值(例如objVia2Station),因为当它们为空时,我没有所有记录,但也没有任何错误。

c# linq linq-to-sql
1个回答
1
投票
var query = context.BaseTable.Select(x => new { x.Id, x.field1, x.field2, .. .. alias_name= x.ForeignTable== null ? "" : x.ForeignTable.Name });
© www.soinside.com 2019 - 2024. All rights reserved.