ファイル名のリストを単純な 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 列と同じ名前がないため、マップできません。