0
當將字段與null進行比較時,NHibernate很聰明。請看下面的LINQ聲明:與NHibernate中的null進行比較時,強制相等運算符
string s = null;
var rows = session.Query<Entity>
.Where(e => e.SomeField == s)
.ToList();
的語句被轉化爲SQL查詢
SELECT ...
FROM entity_table
WHERE some_field IS NULL;
在某些情況下,我不希望這種行爲。我希望得到的查詢包含some_field = NULL
限制(從不)。
(如何)我可以指示NHibernate做到這一點?或者我必須編寫兩個查詢並在代碼中明確處理空值?
請注意,這是在NHibernate的情況下,而不是LINQ到SQL。 NHibernate不能將object.Equals(e.SomeField, s)
轉換爲SQL查詢。另外,與當前的null
和直接比較null
關鍵字的變量相比,將會產生與NHibernate相同的查詢。
的可能的複製[LINQ的where列==(空引用)不一樣的列== NULL(HTTP://計算器。 COM /問題/ 2097539/LINQ-其中列空引用而不是最同作爲列空) – Michael