2つの異なる整数のクエリを実行していますが、少なくとも1つは0以上である必要があります。どちらかint
約DefaultIfEmpty(0)
が、私はそれをやっているか、他の全ての質問は異なり、それをやったし、0どちらかの項目がNULLの場合、Linq文は0を返す必要があります
は、私が知って返す必要がありnull
であれば、私にはnull例外を与え.Sum()
方法とそれらに基づく株式私はselectステートメントで2つの異なる変数を計算しています。このクエリを再作成できるほどの経験はありません。
public IEnumerable<Item> GetInStockTooling()
{
try
{
using (var context = new SpectrumContext())
{
var inStock = context.Item
.Include(i => i.ItemType)
.Include(i => i.ItemLots)
.Include(i => i.LocationStocks)
.Where(w => w.ItemLots.Any(a => a.Quantity > 0 && a.JobItemID == null) || w.LocationStocks.Any(a => a.AmountOfStock > 0) && w.ItemTypeID == (int)ItemTypes.Tooling && w.IsActive)
.Select(b => new
{
b,
ItemLots = b.ItemLots.Where(w => w.JobItemID == null && w.Quantity > 0),
ItemType = b.ItemType,
LocationStocks = b.LocationStocks.Where(w => w.AmountOfStock > 0)
})
.AsEnumerable()
.Select(x => x.b)
.ToList()
.Select(x => { x.Stock = x.ItemLots.Sum(s => s.Quantity) + x.LocationStocks.Sum(s => s.AmountOfStock); return x; });
return inStock;
}
}
catch (Exception)
{
throw;
}
}
Iは、数量/ AmountOfStock上に?? 0
と?? 0m
を行うことを試みたが、私はOperand cannot be applied to type 'decimal' and 'decimal'
エラーを取得します。
私もDefaultIfEmpty
を使用してみましたが、私は、彼らがSelect
内のすべてのコンピューティングをやっていると私は私がDefaultIfEmpty
の使用をSelect
から引き出しする方法を知らない考慮それを使用することは考えています。
あなたが見た「他の質問」とわからないので、これはかなりのショットガンの経験になるでしょう。あなたは[null値を持つLinqクエリ]のいずれかの答えを試しましたか(http://stackoverflow.com/q/696431/215552)? –
なぜあなたは 'Select(x => x.b)'を離れて匿名クラスを作成する 'Select'を持っていますか? – juharr
@MikeMcCaughan申し訳ありませんが、私が試したことを書きます。 Juharr私は知らない。これは私の時間の前にあった。私はまだ初心者ですので、この種のことを理解していますが、構文がわかりにくいです。 – user4648142