Я пытаюсь построить объект результата из запроса, который получает предложение where из тега элемента списка.Вот код, который строит список:
var holds = (from a in db.Record_HoldDatas
join b in db.LUT_Flavors on a.Flavor equals b.ID
where a.HoldStatus == "Open"
orderby a.DateOpened descending
select new { a.HoldID, a.Package, b.flavor, a.DateOpened }).ToList();
DateTime thenTime;
TimeSpan span;
foreach (var items in holds)
{
ListViewItem item = new ListViewItem(items.HoldID.ToString());
item.Tag = (int)items.HoldID;
//determine age
thenTime = (DateTime)items.DateOpened;
span = DateTime.Now - thenTime;
//add age
item.SubItems.Add(span.TotalHours.ToString("0.0"));
lstvHolds.Items.Add(item);
//add flavor
item.SubItems.Add(items.flavor.ToString());
//add package
item.SubItems.Add(items.Package.ToString());
if (span.TotalHours >= 48)
{
item.BackColor = Color.Red;
}
else if (span.TotalHours >= 36 && span.TotalHours < 48)
{
item.BackColor = Color.Yellow;
}
else
{
item.BackColor = Color.Green;
}
}
отсюда я хочу использовать значение тега в выбранном элементе, чтобы создать новый объект из DataContext, используя тег в качестве ограничения в WHEREпредложение:
private void lstvHolds_DoubleClick(object sender, EventArgs e)
{
//create instance of the selected record
var existingRecord = from a in db.Record_HoldDatas
where a.HoldID == lstvHolds.SelectedItems[0].Tag
select a;
//open the hold window for viewing
frmNewFGHold viewHold = new frmNewFGHold("view", existingRecord);
viewHold.Show();
}
Record_HoldData - это объект, созданный из текста данных.Record_HoldData.HoldID имеет тип int.Ошибка, которую я получаю:
Оператор '==' нельзя применить к операндам типа 'int' и 'object'
Когда я отображаю object.ToString(), он показывает правильное значение, но когда я пытаюсь разобрать его в int, я получаю эту ошибку:
Не удается неявно преобразовать тип 'System.Linq.IQueryable' в 'Coke_Hold_Database.Record_HoldData'.Существует явное преобразование (вы пропустили приведение?
, что странно, потому что я не пропустил бы приведение, если бы попытался преобразовать его. Я попытался выполнить разбор, преобразование и приведение.Все с той же ошибкой. Я в тупике. Любая помощь?