Pavel Novotný

.NET Framework, SharePoint, Dynamics CRM, RC Helicopters, Honda VFR CrossRunner

SQL LINQ vs. Guid.Empty

Nikdy jsem na to zatím nenarazil, nebo si toho minimálně nevšimnul, ale v LINQ dotazu platí následující:

Guid.Empty != new Guid("00000000-0000-0000-0000-000000000000")

konkrétní příklad:

var a = query.Where(row => row.InvoiceId == Guid.Empty);

var b = query.Where(row => row.InvoiceId == new Guid("00000000-0000-0000-0000-000000000000"));

logicky bych čekal, že výsledek bude identický, tedy a i b budou obsahovat kolekci identických objektů, ale výsledek je ten, že a obsahuje prázdnou kolekci, b obsahuje všechny záznamy kde je InvoiceId rovno Guid.Empty, což je sice to samé, LINQ to ale zjevně interpretuje jinak a první příklad je tedy nefunkční, respektive nevrací očekáváné výsledky.

Na otázku PROČ jsem nenašel žádnou smysluplnou odpověď. BUG?