您好我将请求对象绑定到上下文对象时遇到问题。我举例说明:
class Car {
public int Id{get; set;}
public string Name{get; set;}
public User Owner{get; set;}
}
class User{
public int Id{get; set;}
public string Name{get; set;}
public virtual ICollection<Car> Cars{get; set;}
}
//CarController
[HttpPut]
public ActionResult Create(Car car){
DbContext.Cars.Add(car);
DbContext.SaveChanges();
}
$http({
method: 'PUT',
url: 'http://localhost/project/api/car/create',
data: {
Name: "Audi",
Owner: { Id: 3 }
}
})
当我运行此代码时,将数据库保存到car并创建新用户(具有递增(不同)id)。我想不创建新用户,但添加外键。我知道它为什么会这样,上下文不知道我的User对象。怎么解决?感谢
答案 0 :(得分:0)
尝试以下代码。我假设用户ID为1,您可以根据需要提供
1.更新您的汽车类以拥有外键的所有者ID属性
class Car {
public int Id{get; set;}
public string Name{get; set;}
public int OwnerId {get;set;}
[ForeignKey("OwnerId")]
public User Owner{get; set;}
}
2.编写以下代码以将所有者分配给汽车
car.OwnerId = 1
DbContext.Cars.Add(car);
DbContext.SaveChanges();