使用PrimaryKey = ForeignKey

时间:2016-01-13 11:58:26

标签: linq linq-to-sql linqpad

我有两张桌子:

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进行插入?

注意:在File - 表达式中将f对象引用设置为new也无济于事。

1 个答案:

答案 0 :(得分:0)

我自己找到了答案......不幸的是,SpecificFile.FileId被设置为EXPORT lm_bufferOut.。异常消息没有多大帮助...