我正在尝试将文件名列表插入到一个简单的 Sql Server 表中。
正如其他 SO 答案所建议的那样,我正在尝试利用 SqlBulkCopy 和@markgravell 的 FastMember库。
public async Task AddFileNamesAsync(string[] fileNames)
{
fileNames.ShouldNotBeNull();
using (var bulkCopy = new SqlBulkCopy(ConnectionString))
{
using (var reader = ObjectReader.Create(fileNames))
{
bulkCopy.DestinationTableName = "FileNames";
bulkCopy.ColumnMappings.Add("value", "FileName");
await bulkCopy.WriteToServerAsync(reader)
.ConfigureAwait(false);
}
}
}
CREATE TABLE [dbo].[FileNames](
[FileNameId] [int] IDENTITY(1,1) NOT NULL,
[FileName] [varchar](500) NOT NULL
所以我觉得这是一个映射问题:
- FastMember 无法映射到某些内部支持集合
- FastMember 后备集合与 DB 列的名称不同,因此无法映射。