假设我们有这三个表:
--Car--
ID
1
2
--Event--
ID CarID EventTypeID DateTimeAdded
1 1 1 2014-04-28 12:00:00
--EventType--
ID Name
1 "Entry Created"
2 "Entry added to sales chart"
3 "Entry removed from sales chart"
使用Entity Framework(在我的情况下为EF 5),如何将Car对象添加到数据库?我已经尝试了许多不同的方法来实现这一点,包括下面的代码,但还没有任何工作。
Car newCar = new Car(){ }
Event newEvent = new Event(){
CarID = newCar.ID,
EventTypeID = 2,
DateTimeAdded = Datetime.Now;
}
newCar.Event.Add(newEvent);
context.Car.Add(newCar);
context.SaveChanges();
非常感谢任何协助。
编辑:在发生context.SaveChanges()之后,在try catch中出现异常。以下是异常的不足之处:
INSERT语句与FOREIGN KEY约束“FK_Event_EventType”冲突。冲突发生在数据库“CarSystem”,表“dbo.EventType”,列“ID”
中
注意:所有这三个表之间都存在关系,包括Event和EventType。这会导致这个问题吗?如果是这样,我根本不知道如何解决它。
答案 0 :(得分:0)
您可能希望按如下方式更改操作顺序:
context.Car.Add(newCar);
newCar.Event.Add(newEvent);
context.SaveChanges();
这样就可以在INSERT调用Event行(子代)之前发出对Car行(parent)的INSERT调用,从而避免出现外键错误。
答案 1 :(得分:0)
我发现了问题:两个表之间的FK关系存在问题。