如果某处对此有明确的答案,我们深表歉意。但我不能插入到一个简单的表中,因为它包含一个外键。
任务表
我尝试像这样插入:
Task t = new Task();
t.Id = 1234;
t.Title = "foo";
t.Status = db.Status.ToList().First();
但是得到一个 updateException 错误: 正在从 AssociationSet 'FK_Task_Status' 中添加或删除关系。对于基数约束,还必须添加或删除相应的“任务”。
我怎样才能插入到这个表中?
干杯
……
发现我的问题....
我的架构是错误的。当我创建外键时,我将它指向了错误的字段。查看 SQL 探查器,看到了这个:
选择 1 AS [C1]、[Extent1].[Id] AS [Id]、[Extent1].[Descr] AS [Descr]、[Extent2].[Id] AS [Id1] FROM [dbo].[Status] AS [Extent1] 左外连接 [dbo].[Task] AS [Extent2] ON [Extent1].[Id] = [Extent2].[Id]
应该是这个(加入 statusId 而不是 id):
选择 1 AS [C1]、[Extent1].[Id] AS [Id]、[Extent1].[Descr] AS [Descr]、[Extent2].[Id] AS [Id1] FROM [dbo].[Status] AS [Extent1] 左外连接 [dbo].[Task] AS [Extent2] ON [Extent1].[Id] = [Extent2].[StatusId]
愚蠢的我;)