【发布时间】:2023-03-18 10:44:01
【问题描述】:
我只是试图在我们的 SQL Server 数据库中插入一条新记录。插入是在使用 LINQ 的 WCF Web 服务中进行的。
d_coord_report_conflict 表的结构如下:
conflict_report_id int NOT NULL IDENTITY PRIMARY KEY,
booking_id int,
conflict_date date,
coord_user_id int
guide_one_user_id int,
guide_two_user_id int,
product_id int,
price_id int
除了conflict_report_id 和conflict_date 之外,一切都是外键。 这是 C# 中 WCF 服务的插入:
d_coord_report_conflict conflict = new d_coord_report_conflict
{
booking_id = bookingID,
conflict_date = date,
coord_user_id = Convert.ToInt32(item.coordID),
guide_one_user_id = pax.user_id_guide,
guide_two_user_id = Convert.ToInt32(item.guideID),
product_id = Convert.ToInt32(item.productID),
price_id = Convert.ToInt32(item.priceID)
};
db.d_coord_report_conflicts.InsertOnSubmit(conflict);
db.SubmitChanges();
它应该是一个直截了当的插入,但它不断抛出以下错误:
当 IDENTITY_INSERT 设置为 OFF 时,无法为表“d_coord_report_conflict”中的标识列插入显式值。
据我所知,这不应该发生。此外,我相信您理解,打开 IDENTITY_INSERT 不是一个可接受的解决方案。
更新:我恢复了每个字段的值,它被传递到 LINQ 查询中,并尝试从 SQL Server Management Studio 中手动插入,它工作正常。完全没有错误。有什么想法吗?
提前致谢。
【问题讨论】:
标签: c# sql linq sql-server-2008