Я пытаюсь создать новую статью, которая выглядит как: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'."}
Не знаете, почему они считаются недействительными. Есть идеи?
Да, проверьте соответствие вашей базы данных и моделей. Иногда мы определяем одну модель, чтобы начать программирование интерфейса, и мы оставляем таблицы базы данных неизменными, а затем, когда создается DataContext, все беспорядок и вызывает такие странные ошибки. Я просто решил это, прочитав этот ответ, моя ошибка показала, что при выполнении db.SaveChanges() был «недопустимым Quote_QuoteID», причина была в базе данных, которую я только что определил Quote.QuoteID, в то время как в классе Model я установил все поля. Я быстро исправил, добавив комментарии к моим свойствам модели, поэтому они соответствуют одному Quote.QuoteID в таблице базы данных. – Nestor
Сложная часть была, я обновлял еще одну модель (Deal, DealActivity), не связанную с Quotes, но, я думаю, это когда вы фиксируете изменения с помощью db.SaveChanges, DataContext загружает/проверяет полный список моделей и его структуру снова в базе данных , затем показал странную ошибку. – Nestor