我正在使用此示例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),因为当它们为空时,我没有所有记录,但也没有任何错误。
var query = context.BaseTable.Select(x => new
{
x.Id,
x.field1,
x.field2,
..
..
alias_name= x.ForeignTable== null ? "" : x.ForeignTable.Name
});