Dapper 的[ExplicitKey]属性的用途是什么?在这个例子中生成的 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
Run Code Online (Sandbox Code Playgroud)
Dar*_*yda 11
这就是属性存在的原因:
https://github.com/StackExchange/Dapper/issues/351
[Key] 属性假定一个自动递增的键,并且当您尝试传递自定义(例如非 int)键时,即使传递的值显然不是 null,Insert 和 InsertAsync 也会失败并显示 NullReferenceException。所以 [ExplicitKey] 被引入来处理这些。
| 归档时间: |
|
| 查看次数: |
2944 次 |
| 最近记录: |