Я вижу, что этот вопрос задан совсем немного, но ни одно из решений не помогло мне, так как я сначала использую модель, а не код.EF6 Model First: указанная схема недействительна, ошибка 0040
У меня есть проект C# в VS 2015 с использованием EF6. Я создаю базу данных с использованием первого подхода модели и могу успешно генерировать код SQL из модели и запускать ее в SSMS. Я использую SQL Server LocalDB.
У меня есть проблема в том, что всякий раз, когда я пытаюсь добавить программно созданный объект в коллекцию (таблица), к которой он принадлежит, я всегда получаю ошибку
Исключения типа «System.Data.Entity .Core.MetadataException 'произошел в mscorlib.dll, но не был обработан в коде пользователя
Дополнительная информация: Указанная схема недействительна.
Ошибка: Market.ssdl (184,6): Ошибка 0040: Тип NVARCHAR (макс) не квалифицирована с пространством имен или псевдонимом. Только примитивные типы могут использоваться без квалификации.
Сущность, которую я создаю, имеет только одно свойство; строка (или nvarchar (max) в базе данных). Опять же, я могу создать объект, но как только я попытаюсь добавить его в свою коллекцию (или таблицу), прежде чем сохранять какие-либо изменения, я получаю вышеуказанную ошибку. Я даже не пытался называть свойство Name, но ошибка сохраняется.
using (var context = new MarketContainer()) { // Create data source var datasource = new DataSource() { Name = dataSourceName }; // Save data source context.DataSources.Add(datasource); }
Другой SO ответ предложил правой кнопкой мыши на файле .TT и нажав кнопку «Выполнить пользовательский инструмент», но это ничего не делать.
Я пробовал это один раз с MySQL, и он работал нормально! Теперь, когда мне нужно перейти на SQL Server, это не сработает ... Я застрял в этой проблеме уже более недели, так что любая помощь может пройти долгий путь.
У вас есть диаграмма? – Juan
Я решил проблему (см. Мой ответ ниже). – grantathon