我正在制作一个带有数据网格的WPF应用程序,该应用程序显示一些sql数据。现在我正在制作一个搜索字段,但这似乎不起作用:
- 联系人为非管理员
- beddrif是一个虚变量但
-
LeverancierPK是INT我该如何在搜索中结合这些呢?如果我将LeverancierPK转换为字符串,那么我可以使用Contains,但这会给我一个错误
//Inisiatie PRCEntities vPRCEntities = new PRCEntities(); var vFound = from a in vPRCEntities.tblLeveranciers where ((((a.LeverancierPK).ToString()).Contains(vWoord)) || (a.Contactpersoon.Contains(vWoord)) || (a.Bedrijf.Contains(vWoord))) orderby a.LeverancierPK select a; myDataGrid_Leveranciers.ItemsSource = vFound;
谢谢
如果您不关心从DB拉回所有记录(在您的回答中您拉回了所有记录),那么您可以在where子句之前做.ToList()
。
var vFound = vPRCEntities.tblLeveranciers.ToList()
.Where(a => a.LeverancierPK.ToString().Contains(vWoord)) ||
a.Contactpersoon.Contains(vWoord) ||
a.Bedrijf.Contains(vWoord))
.OrderBy(a.LeverancierPK);
这段代码可以做我正在寻找的,但我认为它可以短得多。
PRCEntities vPRCEntities = new PRCEntities();
var vFound = from a in vPRCEntities.tblLeveranciers
orderby a.LeverancierPK
select a;
myDataGrid_Leveranciers.ItemsSource = null;
myDataGrid_Leveranciers.Items.Clear();
foreach (var item in vFound)
{
if (item.Bedrijf.Contains(vWoord))
{
myDataGrid_Leveranciers.Items.Add(item);
}
else
{
if (item.LeverancierPK.ToString().Contains(vWoord))
{
myDataGrid_Leveranciers.Items.Add(item);
}
else
{
if (item.Contactpersoon != null)
{
if (item.Contactpersoon.Contains(vWoord))
{
myDataGrid_Leveranciers.Items.Add(item);
}
}
}
}
}