0

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

1 に答える 1