【问题标题】:Insert with PrimaryKey=ForeignKey插入主键=外键
【发布时间】: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


    【解决方案1】:

    自己找到了答案...不幸的是,SpecificFile.FileId 设置为IDENTITY(1,1)。异常消息没有多大帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 2018-03-21
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多