我有一个Person
包含以下列名称的表:
身份证、姓名、出生日期
我也有一个 poco:
public class Person
{
public int Id {get; set;}
public string Name {get; set;}
public string DateOfBirth {get; set;}
}
然后我正在尝试:
var people = new List<Person>();
... // added a bunch of people
using (var bcp = new SqlBulkCopy(sqlConnection, SqlBulkCopyOptions.TableLock, transaction))
using (var reader = ObjectReader.Create(people, "Id", "Name", "Dob"))
{
bcp.BulkCopyTimeout = 120;
bcp.BatchSize = 0;
bcp.DestinationTableName = "Person";
bcp.WriteToServer(reader);
}
但是,由于列名Dob
与属性名不匹配,DateOfBirth
我得到了Index out of range
FastMember 抛出的问题,我怎样才能解决问题而不必重命名属性或列。
请注意,我需要一个可以使用仅在运行时知道的属性和列名的答案,因为我目前正在使用 ServiceStack Ormlite 在运行时检索表元数据,并使用 FastMember 在运行时再次访问 ObjectReader。
任何帮助深表感谢。