【问题标题】:linq to sql if controllinq to sql if control
【发布时间】:2021-02-05 09:11:19
【问题描述】:

我想在 linq 查询中进行 if 控制,但我不知道如何进行此控制。

var result = from sk in stokKartlari
                     join ue in uretimEmirleri on sk.id equals ue.UrunId
                     join ub in urunBarkodlari on ue.Id equals ub.UretimEmriId
                     select new UretimEmriJsonViewModel
                     {
                         Id = ue.Id,
                         BaslangicTarihi = string.Format("{0:yyyy-MM-dd}", ue.BaslangicTarih),
                         BitisTarihi = string.Format("{0:yyyy-MM-dd}", ue.BitisTarih),
                         StokAdi = sk.stokadi,
                         StokKartiId = ue.UrunId,
                         UretimAdet = ue.Adet,
                         UretimBasTarih = string.Format("{0:yyyy-MM-dd}", ue.UretimBasTarih),
                         UretimBitTarih = string.Format("{0:yyyy-MM-dd}", ue.UretimTamamTarih),
                         UretimSeriNo = ue.UEmirBarkod,
                         Res= //true or false
                     };

我尝试 if urunBarkodlari.Where(x=>x.Printed==true && x.UId==ue.Id).Count() count > 0 Res= true or false

我正在做我想做的事,方法是用 foreach 返回列表并发送查询。我可以在不发送查询的情况下通过 linq 执行此操作吗?

【问题讨论】:

    标签: c# sql linq linq-to-sql


    【解决方案1】:

    urunBarkodlari.Any(x => x.Printed== true && x.UId==ue.Id).Count() > 0

    你不需要“?真:假” 如果有任何记录,将返回 true。

    您可以查看此帖子: https://stackoverflow.com/questions/3703256/linq-extension-methods-any-vs-where-vs-exists#:~:text=Any()%20returns%20true%20if,the%20IList%20back%20before%20Linq.

    【讨论】:

      【解决方案2】:

      我解决了我的问题;

      Res = urunBarkodlari.Any(x => x.Printed== true && x.UId==ue.Id).Count() > 0

      【讨论】:

      • 不是更准确,但更短一点:Res= urunBarkodlari.Any(x => x.Printed && x.UId==ue.Id)
      猜你喜欢
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多