我有以下代碼:給定的ColumnName不與數據源的任何列匹配
public void BulkInsert(IEnumerable<T> items)
{
var sbCopy = new SqlBulkCopy(_dataContext.Database.Connection.ConnectionString) { BulkCopyTimeout = 60 * 10 };
var tablename = _dbset.GetTableName();
sbCopy.DestinationTableName = tablename;
foreach (PropertyInfo propertyInfo in items.ElementAt(0).GetType().GetProperties())
{
sbCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(propertyInfo.Name, propertyInfo.Name));
}
sbCopy.WriteToServer(items.AsDataReader());
}
的items
名單如下:
(注意CustomerType
場)
另外,數據庫確實有這個字段。
兩個之間的映射是本:
但是,執行.WriteToServer()
時,出現以下異常
{「給定的ColumnName'CustomerType'與數據源中的任何列不匹配。「 }
是'T'' BulkProduct'還是一些接口或超類型?因爲您將映射基於枚舉中第一個元素的特定具體類型,並且如果它與'T'不同,可能會出現一些類型不匹配。 –
你正在使用哪個版本的EF? – Moumit