我有一個LINQ查詢,根據公司的倉庫描述進行分組。現在,我不得不將這個月的項目重量加起來。但是,我有另外一個字段,其中包含廢品的總重量,這個字段包含「SCRP」一詞。當我這樣做時,我得到臭名昭着的對象引用錯誤未設置爲對象錯誤的實例。我認爲這是因爲有空值或某些東西。該字段包含其他值或空值。如何求和linq上有一個where子句拉動返回空值的數據的字段?
這是我有的查詢。它運行完美,直到我嘗試添加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不可用] ---> System.NullReferenceException:未將對象引用設置爲對象的實例。 at lambda_method(Closure,Object []) –