私は会社の倉庫の説明でLINQクエリ、基を有しています。さて、今月のアイテムの重量を合計しなければならなかった。しかし、私は「SCRP」という言葉を含むフィールドによって見つけられるスクラップの総重量を合計する別のフィールドを持っています。私はこれを行うとき、悪名高いオブジェクト参照エラーがオブジェクトエラーのインスタンスに設定されていない取得します。私はそれがヌルか何かがあるからだと仮定します。フィールドには他の値またはNULLが含まれます。nullを返すデータを引き出すwhere句を持つlinqのフィールドを合計するにはどうすればよいですか?
これは私が持っているクエリです。私はUserSequenceビットを追加しようとするまで完全に実行されます:
P.sスクラップのパーセンテージもうまくいきませんが、これは同じ問題のためです。
var fistDayofPreviousMonth = DateTime.Today.AddMonths(-4);
var testScrapQuery = from s in mapicsSession.Query<InventoryHistory>()
where s.PostedTimestamp > fistDayofPreviousMonth
orderby s.Warehouse.Description
group s by s.Warehouse.Description
into test
let tw = mapicsSession.Query<InventoryHistory>()
.Where(x => x.Warehouse.Description == test.Key)
.Sum(x => x.Item.Weight)
let sw = mapicsSession.Query<InventoryHistory>()
.Where(x => x.Warehouse.Description == test.Key
&& x.UserSequence == "SCRP")
.Sum(x => x.Item.Weight)
select new
{
Warehouse = test.Key,
TotalWeight = tw,
ScrapWeight = sw
//ScrapPercentage = (sw/tw) * 100
};
実際にSCRPが入っているフィールドがあるかどうかを調べるときに機能しますが、合計するとブレークします。 –
私の完全なエラーは次のとおりです。NHibernate.Exceptions.GenericADOException:クエリを実行できませんでした[SQL:SQL not available] ---> System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 at lambda_method(Closure、Object []) –