An exception of type 'System.Data.Entity.Infrastructure.DbUpdateException' — при сохранении БД. Что делать в моем случае?

Сама ошибка:
vfl.ru/fotos/2512cee816224034.html
Данные в БД ( Order ):
vfl.ru/fotos/11e7374016224035.html
Данные в БД ( Cars )
vfl.ru/fotos/898e0ddf16224041.html

HomeController:

namespace WebApplication4.Controllers
{
public class HomeController : Controller
{
// GET: Home
private Models.ShopDBEntities db = new Models.ShopDBEntities();


public ActionResult Index()
{
var Items = db.Cars;
return View(Items);
}



[HttpPost]

public ActionResult Index(string Name, string Tel, int Car)
{
Order order = new Order
{
UserName = Name,
UserTel = Tel,
CarId = Car,
Status = "Создана"

};
db.Orders.Add(order);
db.SaveChanges();

return View();
}

}
}

Car.cs ( Model ):
public partial class Car
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Type { get; set; }
        public string Description { get; set; }
        public string Preview { get; set; }
        public string SubPreview { get; set; }
        public Nullable<int> count { get; set; }
        public Nullable<int> price { get; set; }
    }

Order.cs ( Model )
public int Id { get; set; }
        public string UserName { get; set; }
        public string UserTel { get; set; }
        public string Status { get; set; }
        public int CarId { get;  set; }

DbContext
namespace WebApplication4.Models
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    public partial class ShopDBEntities : DbContext
    {
        public ShopDBEntities()
            : base("name=ShopDBEntities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public virtual DbSet<Car> Cars { get; set; }
        public virtual DbSet<Order> Orders { get; set; }
    }
}

<connectionStrings>
    <add name="BookContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Bookstore.mdf;Integrated Security=True; MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
    <add name="ShopDBEntities" connectionString="metadata=res://*/Models.ShopDBModel.csdl|res://*/Models.ShopDBModel.ssdl|res://*/Models.ShopDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\ShopDB.mdf;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>


View:
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/_Layout.cshtml";
}


<td class="big_card" colspan="3">
    <form onsubmit="return false" action="/Home/Index" method="POST">
        <fields>
            <p > Оформление заказа</p>
            <input type="text" name="Name" placeholder="Введите ваше имя" required /><br />

            <input type="tel" name="Tel" placeholder="Введите номер телефона в формате 8-ххх-ххх-хххх" required patern="8-[0-9]{3}-[0-9]{3}-[0-9]{4}" /><br />

            <select name="Car" required>
                <option value="1">Ghibili</option>
                <option value="2">Quattroporte</option>
                <option value="3">GranTurismo</option>
            </select><br />
            <input type="submit" />
        </fields>
    </form>
</td>


JS
/*Практика JavaScript*/
function SetIMG(selected_url)
{
   var item = document.getElementById("Preview");
    item.src=selected_url;
}
/*Практика jQuery*/
$(document).ready(function(){
   $('#header').fadeTo(2000,0.3,function(){ 
       $('html, body').animate({ scrollTop: $('#content').offset().top }, 2000);
   });
});
Проверка перед отправкой в бд:
/*Ajax jQuery*/
$(document).on('submit','form',function(){
    
    var UserName=$('input[name=Name]').val();
    var UserTel=$('input[name=Tel]').val();
    var Car=$('select').val();
    //Валидация введенных данных.
    //Проверяем имя
    if(UserName.length>0)
    {
    //Проверяем номер телефона
    var regular=/^\8-[0-9]{3}-[0-9]{3}-[0-9]{4}/;
    if(regular.test(UserTel)==true)
    {
        alert('Всё норм!');
     SubmitForm(UserName,UserTel,Car);
    }
    else
    {
        alert("Вы неверно указали номер телефона");
    }
    }
    else{
        alert("Вы забыли указать имя");
    }
});

/*Ajax jQuery*/
function SubmitForm(name,tel,car)
{
   $.ajax({
  method: "POST",
  url: "/Home/Index",
  data: { Name: name, Tel: tel, Car:car }
})
  .done(function( msg ) {
    alert( "Отлично: " + msg );
  }).fail(function() {
    alert( "При передачи данных произошла ошибка" );
  }); 
}


IIS включал и выключал - не помогло. IDE: Visual studio 2015, ASP.NET MVC 5, ms sql 2014. Бд Cars заполнена товаром
Может дело в том, что Id и CarId не связаны между собой ? Если да, то как тогда связать ?
vfl.ru/fotos/799f0d4e16224372.html
  • Вопрос задан
  • 323 просмотра
Решения вопроса 1
yarosroman
@yarosroman
C# the best
В окне исключения нажмите View Details...., чтобы внутреннее исключение посмотреть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы