2010-11-12 12 views
2

Я пытаюсь создать новую статью, которая выглядит как:Invalid Column Name Исключение в EF4 при вызове SaveChanges

Article: 
    ArticleID - int (primary key, auto-incr) 
    Title - nvarchar(100) 
    Text - text 
    LastModified - Datetime 

код Контроллер:

[HttpPost] 
    public ActionResult CreateArticle(Article article) 
    { 
     try 
     { 
      article.LastModified = DateTime.Now; 
      _siteDB.Articles.AddObject(article); 
      _siteDB.SaveChanges(); 

      return RedirectToAction("Index"); 
     } 
     catch 
     { 
      return View(); 
     } 
    } 

Внутреннее исключение:

{"Недопустимое имя столбца 'Название'. \ R \ nНеобходимое имя столбца 'Текст'. \ R \ nНеверное имя столбца 'LastModified'."}

Не знаете, почему они считаются недействительными. Есть идеи?

ответ

2

Вы уверены, что ваша база данных и ваши метаданные EDM по-прежнему синхронизированы? Я бы предложил обновить модель из базы данных, чтобы убедиться, что ваш SSDL имеет последние изменения в базе данных.

+0

Да, проверьте соответствие вашей базы данных и моделей. Иногда мы определяем одну модель, чтобы начать программирование интерфейса, и мы оставляем таблицы базы данных неизменными, а затем, когда создается DataContext, все беспорядок и вызывает такие странные ошибки. Я просто решил это, прочитав этот ответ, моя ошибка показала, что при выполнении db.SaveChanges() был «недопустимым Quote_QuoteID», причина была в базе данных, которую я только что определил Quote.QuoteID, в то время как в классе Model я установил все поля. Я быстро исправил, добавив комментарии к моим свойствам модели, поэтому они соответствуют одному Quote.QuoteID в таблице базы данных. – Nestor

+0

Сложная часть была, я обновлял еще одну модель (Deal, DealActivity), не связанную с Quotes, но, я думаю, это когда вы фиксируете изменения с помощью db.SaveChanges, DataContext загружает/проверяет полный список моделей и его структуру снова в базе данных , затем показал странную ошибку. – Nestor

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