【发布时间】:2014-04-29 21:08:49
【问题描述】:
假设我们有这三个表:
--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"
使用实体框架(在我的例子中是 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。这会导致问题吗?如果是这样,我不知道如何解决它。
【问题讨论】:
-
您的代码似乎没有错(除了一些语法错误)。您创建一辆新车,将其添加到 DbSet 并保存。标准的东西。您在寻找正确的数据库吗?
-
是的,它正在查看正确的数据库。在 context.SaveChanges() 发生后的 try catch 中出现异常。这是异常的内部异常:INSERT 语句与 FOREIGN KEY 约束“FK_Event_EventType”冲突。冲突发生在数据库“CarSystem”、表“dbo.EventType”、列“ID”中。
标签: entity-framework entity-framework-5