Есть ли альтернатива использованию Include
для загружаемых объектов?Что я могу использовать вместо Include?
Причина, по которой я не могу использовать Include
, заключается в том, что она появляется, чтобы быть чувствительным к регистру.
Рассмотрим следующий пример:
У меня есть две таблицы:
Примечания разница в случае.
Когда я хочу нетерпеливый нагрузки Sager
«s Stamkartotek
Я использую Include
, но Include
не загружается Stamkartotek
:
** Update 1 **
Я заметил это странное поведение - если I использовать любые поля от Stamkartotek
, он правильно соединяется:
Но если я пойду и только получить значение Stam_nr
вместо всего объекта - это дает мне A
вместо a
:
исследований до сих пор:
- Команда EF knows об этой проблеме - но решила не исправлять ее.
- This guy имеет ту же проблему только с помощью кода первого - никакое решение не было найдено
Update 2
SQL genereted с Include
:
FROM [dbo].[Sager] AS [Extent1]
INNER JOIN [dbo].[Stamkartotek] AS [Extent2] ON [Extent1].[Klient_Stam_nr] = [Extent2].[Stam_nr]
WHERE 'jek15' = [Extent1].[Sags_nr]
Update 3
Загрузка их в отдельных запросах, и позволяя changetracker фиксировать ссылку. Это, кажется, не работает, либо:
Сообщение форума MSDN устарело. Вы проверили, исправили ли они это в более поздних версиях EF? Если они есть, вы должны обновить версию EF до той, которая исправляет проблему. Не ожидайте, что исправления будут перенесены в предыдущие версии EF, особенно версии, такие как старые версии 4.1. –
@PanagiotisKanavos. Я попытался создать мою модель с помощью [EF 6.0.1] (http://entityframework.codeplex.com/releases/view/112029), но проблема все еще существует: | –
Тогда вам, вероятно, следует заменить столбцы, которые вы используете для связи с ints. Проблема заключается не в 'Include', а в генераторе SQL, когда ассоциации используют текстовые поля. В любом случае использование текстовых данных для ключей является необычной практикой (по причинам, которые вы только что встретили). Или вы можете загрузить EF-код (это OSS) и исправить его, если у вас есть время ... –