Dapper .net,批量插入,如何传递日期时间列的当前日期

问题描述 投票:0回答:1

我正在使用 Dapper plus 批量插入 SQL 表。这是代码

 DapperPlusManager.Entity<HardwareComponentType>("WithInsertIfNotExists").Table("dbo.Components")
                                     .UseBulkOptions(options => {
                                         options.InsertIfNotExists = true;
                                     }).Identity(x=>x.ComponentId).Map("Name", "Name").Map("Status", "Status").MapValue("getDate()", "ModifiedDateTime"); 

正如您所看到的,对于“modifiedDateTime”列,我试图传递“getDate”,但我无法这样做。我遇到了异常。基本上,它将其视为字符串。 如何在此语法中传递 getDate() 作为参数,这是我的问题。

dapper bulkinsert
1个回答
0
投票

Map
方法可以取任意值,例如:

.Map(x => DateTime.Now, "ModifiedDateTime")

使用

x =>
部分很重要,因为这意味着每次调用此方法时都会对每个实体评估
DateTime.Now

仅当

MapValue
是常数时才应使用
ModifiedDateTime
方法。例如,如果您仅为此
DapperContext
创建自定义
BulkInsert
,那么所有实体都将具有相同的值。但就您而言,您会使用
GlobalContextMapping
,因此
Map(x =>
方法就是您正在寻找的方法。

© www.soinside.com 2019 - 2024. All rights reserved.