간단한 SQL Server 테이블에 파일 이름 목록을 삽입하려고합니다..NET 문자열 []을 FastMember 객체에 매핑하려고했지만 오류가 있거나 매핑되지 않았습니다.
다른 SO 답변에서 제안한대로 SqlBulkCopy 및 @markgravell's 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 컬럼으로는 할 수 있습니다 지도가 없습니다.
아무도 도와 줄 수 있습니까?
당신은 IDataReader의 독자적인 구현을 작성할 수 있습니다. SqlBulkCopy는 판독기에서 GetValue, Read 및 FieldCount 구현을 호출하기 때문에 사용자 지정 판독기를 작성하는 것이 상대적으로 쉽습니다. 그냥 생각. – TnTinMn