Dapper 的 [ExplicitKey] 属性 - 用途是什么?
Dapper's [ExplicitKey] attribute - what's the purpose?
Dapper 的 [ExplicitKey] 属性的用途是什么?
在 this example 中生成的 SQL 是绝对相同的,无论是否应用密钥。
exec sp_executesql
N'insert into InvoiceDetail ([InvoiceID], [Detail]) values (@InvoiceID, @Detail);
select SCOPE_IDENTITY() id',N'@Detail nvarchar(4000),@InvoiceID int',@Detail=N'Insert_Single_1',@InvoiceID=4
这就是属性存在的原因:
https://github.com/StackExchange/Dapper/issues/351
[Key] 属性采用自动递增键,当您尝试传递自定义(例如 non-int)键时,Insert 和 InsertAsync 会失败并出现 NullReferenceException,即使传递的值显然不是无效的。因此引入 [ExplicitKey] 来处理这些问题。
Dapper 的 [ExplicitKey] 属性的用途是什么? 在 this example 中生成的 SQL 是绝对相同的,无论是否应用密钥。
exec sp_executesql
N'insert into InvoiceDetail ([InvoiceID], [Detail]) values (@InvoiceID, @Detail);
select SCOPE_IDENTITY() id',N'@Detail nvarchar(4000),@InvoiceID int',@Detail=N'Insert_Single_1',@InvoiceID=4
这就是属性存在的原因:
https://github.com/StackExchange/Dapper/issues/351
[Key] 属性采用自动递增键,当您尝试传递自定义(例如 non-int)键时,Insert 和 InsertAsync 会失败并出现 NullReferenceException,即使传递的值显然不是无效的。因此引入 [ExplicitKey] 来处理这些问题。