У меня есть база данных, в которой ключи большинства таблиц принадлежат Guid. Проблема в том, что если я попытаюсь выполнить оператор LINQ to Entity и сравню Guid, который у меня есть, с Guid, который существует в одной из Entities, на которые я ссылаюсь, SQL никогда не запустится! Я тестировал это, используя SQL Server 2008 R2 с запущенным SQL Profiler, и при выполнении инструкции sql явно никогда не попадал в базу данных. Если я беру сравнение Guid, то sql передается на SQL Server, и я получаю результат обратно.
Например:
var itemType = new Guid("27733204-C1E6-4F93-BEAD-63C2C8EBC299");
var items from myDBContext.Items.Where(x => x.itemType == itemType);
Я пробовал другие методы, такие как x.itemType.CompareTo(itemType), но ничего не работает. По сути, если у меня есть Guid, который я хотел бы использовать в любом типе предложения Where, которое выходит за рамки самого оператора linq, я не получаю абсолютно никакого SQL, выдаваемого серверу.
Я надеюсь, что у кого-то есть ответы. В настоящее время используется Entity Framework 5 с С# 4.5.