У меня есть вопрос , для которого я предоставил решение.Тем не менее, я не думаю, что это так эффективно, как могло бы быть:
using (DataContext context = new DataContext(SqlConnection)
{
var custInfo = context.GetTable<tbl_CustomerInfo>();
string compID = ImportCust.Rows[0]["CompanyID"].ToString();
var imports = from cust in ImportCust.AsEnumerable()
select cust.Field<int>("CustomerID");
var dupes = from import in imports
join cust in custInfo
on import equals cust.CustomerID
where cust.CompanyID== pivnum
select cust;
var records = dupes.GetEnumerator();
while (records.MoveNext())
{ custInfo.DeleteOnSubmit(records.Current); }
context.SubmitChanges();
}
Я использовал Stopwatch
, чтобы посмотреть, сколько времени прошло с итерацией records
до завершения SubmitChanges
.Похоже, что прошедшее время не имеет смысла или причины:
10666 записей завершено за 20 секунд
15425 записей завершено за 12 секунд
289 записей завершено за 21 секунду
* 1016то, что ускорило бы ситуацию, - это если бы я опустил индексы.Это можно сделать программно?Кроме того, есть ли лучший метод, чем то, что я предоставил?