【发布时间】:2014-08-26 07:47:58
【问题描述】:
我注意到,当我使用 EF 插入时,它会执行选择以查找下一个 PK。
我有一个设置了身份并启用了自动增量的 PK 字段。
这里是查询
SELECT [ackId]
FROM [dbo].[Acks]
WHERE @@ROWCOUNT > 0 AND [ackId] = scope_identity()
我碰巧注意到它,因为它位于 SQL Manger Studio 中最近昂贵的查询列表的顶部。查找 PK 的查询比实际插入的成本更高,这不是很有意义吗?
这是正常行为吗?或者这种行为是由实体框架引起的?
我能想到的另一个问题。如果 EF 正在执行选择以获取值,如果有多个连接写入数据库会发生什么?不能有select返回相同值的情况吗?
【问题讨论】:
标签: sql sql-server entity-framework insert entity-framework-6.1