1

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

元数据集合中不存在身份为“AutoNumber”的成员。\r\n参数名称: 身份

问题是表上的插入触发器。

这是表结构:

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

是否可以在不删除触发器的情况下使用实体框架?我可以以某种方式定义“自动编号”吗?为什么它不忽略触发器的结果?

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

4

2 回答 2

1

你不可以做这个:

Select * from COMPONENT_TYPES_IN_SERVICE cts

其中 cts.id = @ComponentTypeID;

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

元数据集合中不存在身份为“component_type_name”的成员。\r\n参数名称: 身份

于 2013-11-25T11:36:24.193 回答
0

看到这个回复

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

context.Configuration.ValidateOnSaveEnabled = false 
于 2014-07-28T09:31:56.783 回答