2016-01-13 29 views
0

我有兩個表:插入用的PrimaryKey = ForeignKey的

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-表達式也無濟於事。

回答

0

自己找到答案...不幸的是,SpecificFile.FileId被設置爲IDENTITY(1,1)。這個例外消息沒有多大幫助...