插入冲突LINQ-to-SQL

时间:2009-08-09 00:07:04

标签: linq-to-sql

插入新相册时出现此错误:

{System.Data.SqlClient.SqlException: 
INSERT statement conflicted with COLUMN FOREIGN KEY 
constraint 'FK_ChannelAlbum_Group'. 
The conflict occurred in database 'Stamper', table 'Channel', column 'ID'.

我不知道发生了什么,因为有时我将新相册插入上下文时会发生错误,但Album表只有Channel IDAlbum_Channel表。此插入根本不会影响album_channelchannel表。为什么会有冲突。

我意识到在我创建新相册之后我尝试插入album_channel数据我有一个错误,所以我停止调试并尝试解决问题。一旦我完成了工作,我再次插入一个新专辑,但它总是给我这个错误。所以我关闭了我的视觉工作室并重新打开它以便工作.....

我不确定这是一种创建上下文的单例风格的好方法,例如。

我已经将上下文写为类,并且此上下文仅创建一次,以防止它创建太多次。

1 个答案:

答案 0 :(得分:0)

没有图表很难回答。看起来您正在插入的表中有一个外键,它不是它所引用的表中的有效主键。如果您认为自己没有,那么您可以尝试检查您的关系,并可能重新生成您的L2S实体。甚至可能尝试手动插入该表,看看是否会出现同样的错误。

包装在单例中的上下文对于Web应用程序来说是一个坏主意,因为它不是线程安全的。您可以查看“工作单元”模式或尝试缓存上下文实例。