【发布时间】:2016-01-13 11:58:25
【问题描述】:
我有两张桌子:
File
|- Id (Primary Key)
|- Name
|- ...
SpecificFile
|- FileId (Primary Key & Foreign Key to File.Id)
|- SpecificProperty1
|- ...
我有以下 Linq2Sql 代码(LINQPad):
var sfiles = from f in File
where f.Name LIKE 'Specific%'
select new SpecificFile { FileId = f.Id, SpecificProperty1 = "Foo" };
SpecificFiles.InsertAllOnSubmit(sfiles);
但是,插入失败:
SqlException:INSERT 语句与 FOREIGN KEY 约束“FK_SpecificFile_File”冲突。冲突发生在数据库“MyDatabase”、表“dbo.File”、列“Id”中。 声明已终止。
如果我调试并查看Linq2Sql生成的INSERT语句,原因就很清楚了:
INSERT INTO [SpecificFile]([SpecificProperty1])
VALUES (@p0)
如何通知Linq2Sql它必须使用特定的ID进行插入?
注意:在new-表达式中将File 对象引用设置为f 也无济于事。
【问题讨论】:
标签: linq linq-to-sql linqpad