в моем приложении win-form есть метод, который комбинирует некоторые элементы, которые были созданы ранее, когда код запускается в первый раз, все в порядке, но во втором и последующих запусках комбинированные элементы имеют неправильную длину .
код читает элементы с сервера SQL с использованием LINQ, тип объекта которого называется "BetaData"
BetaData имеет свойство с именем «Длина», которое является двойным.
У меня есть еще один список, в котором обработанные элементы хранятся с именем «PartList» типа «ModifiedPartList».
в свойствах длины метода изменяется для некоторых элементов, но в SQL ничего не сохраняется и не сохраняется.
это основной метод:
private List<ModifiedPartList> CombinePartList(ProgressBar Bar)
{
PartList.Clear();
List<BetaData> PartsinOrder = new List<BetaData>();
foreach (int view in Globals.Views)
{
List<int> OrdersInView = new List<int>();
foreach (Tuple<int, int> tuple in Globals.Orders)
{
if (tuple.Item1 == view)
{
if (!OrdersInView.Contains(tuple.Item2))
OrdersInView.Add(tuple.Item2);
}
}
if(OrdersInView.Count>0)
{
OrdersInView.Sort();
foreach (int order in OrdersInView)
{
//this is the section that problem occurs:
var parts = from BetaData in BetaContext.BetaDatas
where BetaData.ProjectName == Globals.ProjectName &&
BetaData.ProjectCode == Globals.ProjectCode &&
BetaData.ParentItem != Globals.ProjectName + "(" + Globals.ProjectCode + ")" &&
BetaData.View == view &&
BetaData.Order == order
select BetaData;
PartsinOrder.Clear();
PartsinOrder = parts.ToList();
foreach(BetaData part in PartsinOrder)
{
Bar.PerformStep();
}
}
}
PartsinOrder.Clear();
}
return PartList;
}
в разделе, который я прокомментировал как проблемное местоположение, когда код выполняется во второй раз, свойство оптимизированной длины загружается в элементы вместо их исходного значения из SQL. Я не могу понять это, потому что каждый раз, когда я читаю все элементы с сервера SQL.
Дело в том, что на этом этапе я несколько раз запускал метод и получал неправильные результаты, когда закрывал программу и запускал ее снова, при первом запуске результаты верны.
после выбора из SQL и преобразования его в список я просматриваю элементы и их свойства в списке, и все они имеют значение true, но в цикле foreach, когда каждая часть входит в цикл, их свойство Length неверно.