使用触发器插入表时实体框架错误 - 元数据集合中不存在具有标识“AutoNumber”的成员

时间:2013-09-25 18:53:31

标签: sql-server entity-framework triggers

当我使用Entity Framework插入行时,我收到此错误:

  

元数据集合中不存在标识为“AutoNumber”的成员。\ r \ nParameter name:identity

问题是桌面上的插入触发器。

这是表结构:

CustomerID | (identity, auto increment)
FirstName  |
LastName   |

这是触发器:

CREATE TRIGGER [dbo].[TR_Customer_INSERT] 
ON [dbo].[Customer]
FOR INSERT
AS
    SET NOCOUNT ON

    SELECT @@IDENTITY AS AutoNumber
    RETURN

是否可以在不删除触发器的情况下使用Entity Framework?我能以某种方式定义'自动编号'吗?为什么不忽略触发器的结果?

更新:我放弃并删除了触发器。

2 个答案:

答案 0 :(得分:1)

你不能这样做:

Select * from COMPONENT_TYPES_IN_SERVICE cts

其中cts.id = @ComponentTypeID;

它将COMPONENT_TYPES_IN_SERVICE记录返回给您的应用程序,EF尝试将返回的值复制到SERVICE中,因为它认为您正在传回一些数据库生成的值。

The member with identity 'component_type_name' does not exist in the metadata collection.\r\nParameter name: identity

答案 1 :(得分:0)

请参阅this回复

因此,请关闭EF框架中的验证:

context.Configuration.ValidateOnSaveEnabled = false