簡體   English   中英

從 linq 查詢返回

[英]Return from linq query

下面這個查詢怎么返回linq

public SewaPeralatan FindByNotaSewa(string notaSewa)
{
    var dataSewa = 
        from sp in _context.SewaPeralatan
        join spd in _context.SewaPeralatanDetails on sp.Id equals spd.SpId
        where sp.NotaSewa == notaSewa
        select new { sp, spd };
                           
    return dataSewa.FirstOrDefault();
}

返回得到這樣的錯誤

"Cannot implicitly convert type '<anonymous type: SYN.Models.SewaPeralatan sp, SYN.Models.SewaPeralatanDetail spd>' to 'SYN.Models.SewaPeralatan'"

我對返回的期望是能夠從 SewaPeralatanDetail 表中獲取數據 SewaPeralatanDetail 表包含來自 SewaPeralatan 表的詳細信息

如果您使用的是 EF,則可以像這樣使用 linq 返回SewaParlatan

 public SewaPeralatan FindByNotaSewa(string notaSewa)
        {
            var dataSewa =
                _context.SewaPeralatan
                .Where(b => b.NotaSewa == notaSewa)
                .Include(b => b.SewaPeralatanDetails)
                .FirstOrDefault();
                

            return dataSewa;
        }

您需要將方法返回類型更新為tuple 如下,

public (SewaPeralatan, SewaPeralatanDetail) FindByNotaSewa(string notaSewa)
{

}

你應該像這樣改變內部方法,

 var dataSewa = from sp in _context.SewaPeralatan
  join spd in _context.SewaPeralatanDetails
                           on sp.Id equals spd.SpId
                           where sp.NotaSewa == notaSewa
                           select (sp, spd);
                           
            return dataSewa.FirstOrDefault();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM