【发布时间】:2009-08-17 04:55:46
【问题描述】:
我正在开发一个 WPF 系统,该系统使用实体框架连接到旧的遗留数据库。我们在调试时连接到实时数据的备份和一个空数据库来运行测试。只有在尝试从实时数据的备份中删除时,我才会收到以下错误。
这段代码:
License license = ReadLicense(id);
entities.DeleteObject(license);
entities.SaveChanges();
产生这个 SQL:
exec sp_executesql N'delete [dbo].[Product]
where ((([Group_ID] = @0) and ([Parent_ID] = @1)) and ([Prod_ID] = @2))',N'@0 nvarchar(32),@1 nvarchar(32),@2 nvarchar(32)',@0=N'someIdValue1',@1=N'someIdValue2',@2=N'someIdValue3'
这又会产生此错误:
消息 208,级别 16,状态 1,过程 TrackDeletedProduct,第 4 行。 无效的对象名称“DeletedRecords.dbo.Product_Deleted”。
如果您将生成的 SQL 更改为“选择”查询,它会返回一行,因此,“ReadLicense”将返回一个有效实体。我真的不明白为什么这不起作用,尤其是当它只针对实时数据时。 “许可证”实体是从基本“产品”实体继承的两个实体之一。
干杯。
【问题讨论】:
标签: c# sql-server entity-framework exception linq-to-entities