2014-09-25 5 views
2

У меня есть веб-приложение, веб-форма asp.net 4.5 C# с EF6 DB-first, Я работаю над этим почти год, все работает нормально до сегодняшнего дня, когда я пытался добавить новый вид обновления edmx из базы данных. таблица добавляется без ошибок, но из кода не видно, и если я пытаюсь прикрепить к EntityDataSource, я получаю сообщение «Не удалось найти тип CLR для.»Entity Framework 6 Не удалось найти тип CLR для <model>. <entity>

Я что стратегия генерации кода установлена ​​на T4. Если я перехожу к «Legacy ObjectContext», то новый объект правильно отображается в коде, и EntityDataSource отлично работает, я отлично вижу связанный с gridview привязкой, , но если я попытаюсь перейти на другую страницу, где я получаю доступ к другой «старые» объекты, я получаю несколько строк ошибок:

Указанная схема недействительна. Ошибки: Отображение типа CLR типа EDM неоднозначно, поскольку несколько типов CLR соответствуют типу «Отчет» типа EDM. Ранее найденный тип CLR 'Report', новый тип CLR 'AppNameModel.Report'. Отображение типа CLR типа EDM неоднозначно, поскольку несколько типов CLR соответствуют типу EDM «Клиент». Ранее найденный тип CLR «Клиент», новый тип CLR типа «AppNameModel.Customer». .... и т. Д. Для всех ранее созданных объектов (последний не указан и работает с устаревшей стратегией objCtx!)

Так что же случилось с EF ??! Я прочитал все Q & A при переполнении стека, но ни один из них не имеет решения.

я надену какую-то часть web.config:

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

...

<entityFramework> 
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
    <parameters> 
    <parameter value="v11.0" /> 
    </parameters> 
</defaultConnectionFactory> 
<providers> 
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
</providers> 

здесь свойства EDMX: edmx properties

Когда я добавляю представление с использованием стратегии T4, на самом деле, представление n ot присутствует в любом файле, где определены сущность, отображается только в визуальном дизайнере emdx. Я проверил в файле .cs и в .context.cs

Пожалуйста, введите какой-то ввод, где я должен посмотреть, как я могу исправить ... какое-то направление! благодаря

ответ

2

я еще не обнаружил, что вызвало вопрос, кстати, я нашел обходной путь:

Запустите Выборочная Tool на двух .TT файлы, связанные с вашей EDMX. Эти два файла содержат автоматически сгенерированный код, если автоматическое поколение больше не работает, запуская настраиваемый инструмент, вы вынуждаете его обновлять код в соответствии с вашей моделью edmx.

+1

Я просто столкнулся с тем же сообщением об ошибке, что и вы. Проблема заключалась в том, что я внес некоторые изменения в классы моделей, но не обновил остальную часть автоматически сгенерированного кода. Запуск пользовательского инструмента заставил обновление, как вы упомянули, так что решила мою проблему. Благодаря! – Irina

+0

Извините, не хотел проголосовать +1 или -1 ... Это не позволило мне отменить.Это конкретное исправление не сработало для меня, но я рад, что это было для кого-то другого :) Как ни странно, я все же мог создавать виды под открытым небом, но не левый контроллер. –

Смежные вопросы