Привет всем. У меня есть следующий бит кода, который используется для создания телефонных номеров и вставки их в таблицу в базе данных. Чтобы сгенерировать коды, он выглядит в таблице в базе данных, чтобы увидеть, какие цифры цифр «F» нужно генерировать для диапазона. Так, например, для диапазона Лидса «01132 21» нужны числа, генерирующие для 1,3,4 и 6. Таким образом, сгенерированные числа будут такими, как 01132211000-01132211999, 01132213000-01132213999 и т. Д.Более эффективный и быстрый способ генерации чисел и вставки в db
Это работает как i как ожидалось. Тем не менее, это занимает довольно много времени (требуется 12 часов для создания 120 000 записей, и я считаю, что у нас может быть примерно один миллион записей. Просто интересно, есть ли более быстрый способ делать то, что я хочу. Я все еще очень " зеленый»разработчик, так что действительно не знаю, что лучший способ сделать что-то совсем еще
private TelephoneNumberManagementEntities context = new TelephoneNumberManagementEntities();
public ActionResult Index()
{
var list = context.TempNumberImports.ToList();
foreach (var item in list)
{
string range = item.Range.ToString().Trim().Replace(" ","");
if (item.C0 == "Y")
{
GenerateNumbers(range, 0, 999, item.ID);
}
if (item.C1 == "Y")
{
GenerateNumbers(range, 1000, 1999, item.ID);
}
if (item.C2 == "Y")
{
GenerateNumbers(range, 2000, 2999, item.ID);
}
if (item.C3 == "Y")
{
GenerateNumbers(range, 3000, 3999, item.ID);
}
if (item.C4 == "Y")
{
GenerateNumbers(range, 4000, 4999, item.ID);
}
if (item.C5 == "Y")
{
GenerateNumbers(range, 5000, 5999, item.ID);
}
if (item.C6 == "Y")
{
GenerateNumbers(range, 6000, 6999, item.ID);
}
if (item.C7 == "Y")
{
GenerateNumbers(range, 7000, 7999, item.ID);
}
if (item.C8 == "Y")
{
GenerateNumbers(range, 8000, 8999, item.ID);
}
if (item.C9 == "Y")
{
GenerateNumbers(range, 9000, 9999, item.ID);
}
}
return View();
}
public void GenerateNumbers(string range, int startNo, int endNo, int rangeID)
{
Number num = new Number();
for (int i = startNo; i <= endNo; i++)
{
if (startNo == 0)
{
string tempNum = range + i.ToString("D4");
var record = context.Numbers.FirstOrDefault(m => m.Number1 == tempNum);
if (record == null)
{
num.Number1 = tempNum;
num.RangeID = rangeID;
num.StatusID = 1;
num.ImportDate = DateTime.Now;
num.ImportSource = "Number Ranges 250811.xlsx";
context.Numbers.Add(num);
context.SaveChanges();
}
}
else
{
string tempNum = range + i;
var record = context.Numbers.FirstOrDefault(m => m.Number1 == tempNum);
if (record == null)
{
num.Number1 = tempNum;
num.RangeID = rangeID;
num.StatusID = 1;
num.ImportDate = DateTime.Now;
num.ImportSource = "Number Ranges 250811.xlsx";
context.Numbers.Add(num);
context.SaveChanges();
}
}
}
}