Ответ 1
В VS 2012 файл EF.Utility.CS.ttinclude будет установлен только в том случае, если выбран компонент Microsoft Web Developer Tools или Microsoft SQL Server Data Tools.
Как я могу устранить эти ошибки:
Используемые инструменты: VS 2012, Entity Framework 5.0.0, T4MVCExtensions 3.5.0,.NET Framework 4.5
Я использую шаблоны EF и T4 в проекте в рамках большого MVC-решения без инцидентов. Теперь, когда я нажимаю правой кнопкой мыши на диаграмме edmx, EF отвечает сообщением: Значение не попадает в ожидаемый диапазон. Когда я компилирую проект EF, он отвечает на эти сообщения:
Каждая таблица в базе данных имеет первичный ключ. Меня поразило, как внезапно появилась эта проблема. У кого-нибудь есть предложения по устранению этой проблемы?
Спасибо заранее,
Арнольд
В VS 2012 файл EF.Utility.CS.ttinclude будет установлен только в том случае, если выбран компонент Microsoft Web Developer Tools или Microsoft SQL Server Data Tools.
У меня была очень похожая проблема, и я пробовал VS2012 и VS2013.
После переустановки инструментов Entity Framework 6 для Visual Studio 2012 http://www.microsoft.com/en-us/download/confirmation.aspx?id=40762 все вернулось к нормальной жизни.
Переустановка Entity Framework 6 Инструменты для Visual Studio 2012 http://www.microsoft.com/en-us/download/confirmation.aspx?id=40762 работают для меня
Для VS2017 я добавил EF6.Utility.CS.ttinclude в папку модели. Это решило мою проблему с MySql и EF.
Файл может быть найден: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Инструменты Entity Framework\Templates\Includes\EF6.Utility.CS.ttinclude
ОБНОВЛЕНИЕ Чтобы избежать вышеуказанного, полностью удалите сущности, а затем добавьте обратно в исправленную проблему.
Visual Studio 2017
получала ту же ошибку, но только в тестовом проекте. после просмотра тестового проекта и другого проекта, успешно ссылающегося на этот файл, я обнаружил, что добавление следующего в app.config неудачного проекта разрешило мою проблему
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<connectionStrings>
Возникла эта проблема с недавней установкой VS2017 Enterprise после того, как эта функция работала в Professional.
Решением для меня было:
Вероятно, стоит отметить, что у меня уже был установлен EF6, и мне не нужно было переустанавливать его, чтобы заставить его работать.
После выполнения этих шагов и запуска Visual Studio ошибка исчезла, и я смог успешно сгенерировать свои классы. Надеюсь это поможет!
Все вышеперечисленные решения не спомогли мне, поэтому я создал новый проект, чтобы проверить, сохраняется ли проблема, но ошибка не возникла во вновь созданном проекте. Затем я сравнил проект со старой резервной копией, чтобы проверить последние внесенные изменения и обнаружил проблему. Недавно я обновил пакет Clarius.TransformOnBuild до более новой версии, после понижения пакета ошибка исчезла.
Эта проблема, кажется, вызвана странным именем папки (с %20
вместо пробелов). Я только что сделал соединение каталога с той же папкой с пробелами вместо %20
и это решило проблему.
Вот команда PowerShell, которую я использовал для соединения:
cd "c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\"
mklink /j "Entity Framework Tools" "Entity%20Framework%20Tools"
Junction created for Entity Framework Tools <<===>> Entity%20Framework%20Tools
Затем вы можете использовать ls
look для содержимого каталога, и вы должны увидеть эти две строки (отредактированные для краткости):
Mode LastWriteTime Length Name
---- ------------- ------ ----
...
d----l 2/27/2019 9:57 AM Entity Framework Tools
d----- 2/26/2019 12:24 PM Entity%20Framework%20Tools
...
В режиме " l
указывает, что это "ссылка" (aka junction), а " d
указывает на каталог. Сделав соединение вместо переименования папки, вы можете быть уверены, что оба имени каталога будут работать всегда.