EF核心异常Microsoft.EntityFrameworkCore.DbUpdateException不知道为什么会抛出该异常

时间:2019-04-17 15:44:20

标签: c# entity-framework visual-studio-code .net-core

我不确定为什么在调用dbcontext.SaveChangesAsync()时会引发Microsoft.EntityFrameworkCore.DbUpdateException

保存到数据库包括几个步骤。 1.使用Automapper从viewmodel-> Model进行映射。这似乎工作正常 2.将模型对象添加到dbcontext-看起来可以正常工作。 3.通过在dbContext上调用SaveChangesAsync将当前Dbcontext更改保存到数据库中-这将引发异常Microsoft.EntityFrameworkCore.DbUpdateException(内部异常指出“无效的对象名称'车辆”)

首先,这是进行业务的控制器代码。调用SaveChangesAsync时抛出异常。

[HttpPost("")]
public async Task<IActionResult> PostNewVehicleData([FromBody]VehicleViewModel vehicleData_)
{
    try
    {
        if (ModelState.IsValid)
        {
            var newVehicle = _mapper.Map<Vehicle>(vehicleData_);
            _vehicleRepository.AddVehicle(newVehicle);
            if (await _vehicleRepository.SaveChangesAsync())
            {
                return Created($"api/Vehicles/{vehicleData_.Notes}", _mapper.Map<VehicleViewModel>(newVehicle)); 
            }
        } 

        return BadRequest("Failed to save the vehicle");

如前所述,内部异常指出“无效的对象名称车辆”。我要保存的类实例中有一个“ Vehicles”属性。此“车辆”属性存在,因此可以在基础数据库中建立一对多(一个经销商,许多车辆)的关系。是否有人对EF核心为何对此资产“抱怨”有任何想法?

public class Dealer
{
    public Dealer()
    {

    }
    public int Id {get; set;}
    public string DealerName {get; set;}
    public string StreetAddress{get; set;}
    public City City{get;set;}
    public string PostalCode{get;set;}
    public string WebAddress{get;set;}
    public string PhoneNumber{get;set;}
    public List<Vehicle> Vehicles{get;set;}
    public int CityForeignKey{get; set;}

}

0 个答案:

没有答案