У меня есть модель и список экземпляров (около 5000), которые мне нужно скопировать в базу данных.Лучший способ конвертировать IEnumerable <T> в Datatable для SQL Bulk Copy
Я пытаюсь ассимилировать свои объекты в DataTable, но я не знаю, как это сделать:
public class BookingType {
public int ID { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public int RandomProperty { get; set; }
public int RandomProperty2 { get; set; }
}
public void InsertSomeStuff(IEnumerable<BookingType> bookings) {
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString)) {
conn.Open();
DataTable dt = new DataTable();
using (SqlBulkCopy copy = new SqlBulkCopy(conn)) {
copy.ColumnMappings.Add(0, 1);
copy.DestinationTableName = "dbo.Bookings";
copy.WriteToServer(dt);
}
}
}
Как это сделать?
Вы можете использовать общий метод [показанный здесь] (http://msdn.microsoft.com/en-us/library/bb669096.aspx) для создания datatable, заданный 'IEnumerable' любого произвольного типа. – Servy