2010-06-08 76 views
0

我使用的N- Hibernate和有一個叫義和團IQueryable的失敗,在哪裏工作

類/表我也有一個前景表,告知用戶,如果拳擊手是一個前景使用。 (此表只是boxersID的一列)

所以我想這是前景(意思是有沒有ID的前景表中的所有拳擊手)

Public static IQueryable<Boxer> IsProspect(this IQueryable<Boxer> query) 
{ 
return query.Where(x => x.Prospect != null); 
} 

這並不減磅所有拳手我拳擊手名單是前景...然而,如果我調試,看看任何拳擊手,它將有正確或錯誤旁邊每一個正確的...

爲什麼不是正確的修剪下列表的where子句?

回答

0

我會建議擺脫潛在顧客表並向義和團表中添加一個名爲「IsProspect」的列,這只是某種布爾值。這將簡化數據庫模式和NHibernate映射。

除此之外,檢查x.Prospect不爲空將返回所有Boxer s。相反,使用這條線:

return query.Where(x => x.Prospect); 

只是檢查布爾值是真實的,而不是檢查,這不是空。

+0

我會prefere不要把前景到表,因爲它是不一樣的東西 您的代碼行(移動「!= NULL」)未按不能做展望==布爾 – Steve 2010-06-08 22:43:40

+0

的 對象@Steve我認爲Aaron正在假設(這也是我的看法),「x.Prospect」是「Boxer」的「bool」屬性。這也是爲什麼你的方法返回所有'Boxer'對象 - 'true'和'false'都不是'null'的原因。 – Jay 2010-06-09 03:02:02

+0

我想我不明白爲什麼你的代碼是這樣的。 「展望」對象究竟是什麼?如果它只不過是對「義和團」的引用,那麼就我所見,這是額外的不必要的複雜性。但是,如果您在「展望」中看到「正確的每一個正確」旁邊的真/假,則應該返回query.Where(x => x.Prospect!= null && x.Prospect。 IsProspect)'。 – Aaron 2010-06-09 12:25:18