C# LINQ - Dotaz - ASP .NET
Ahoj, nevím zda je možno můj dotaz řešit, asi je moc komplexní.
Mám databázi. Ta obsahuje tabulku Osob, míst a položek.
Tyto jsou provázany vazbami.
V pohodě mi tak funguje následující dotaz:
(nezalekněte se delší třídy, dotaz je jednoduchý)
public class InventoryItemRow
{
InventoryItem _item = null;
public InventoryItemRow(InventoryItem item)
{
_item = item;
}
public int ID
{
get
{
return _item.ID;
}
}
public string Name
{
get
{
return _item.Name;
}
}
public string Description
{
get
{
return _item.Description;
}
}
public int InventoryNumber
{
get
{
return _item.InventoryNumber;
}
}
public string PersonName
{
get
{
if (_item.Person == null)
return "";
return _item.Person.Name;
}
}
public string lokalita
{
get
{
if (_item.Person == null)
return "";
return _item.Place.Name;
}
}
public string ValidFrom
{
get
{
return _item.ValidFrom.ToShortDateString();
}
}
public string ValidTo
{
get
{
if (_item.ValidTo == null)
return "";
if (_item.ValidTo.HasValue)
return _item.ValidTo.Value.ToShortDateString();
return "";
}
}
public bool IsSelected { get; set; }
public string PlaceID
{
get
{
return PlaceID;
}
}
public string PersonId
{
get
{
return PersonId;
}
}
// A dotaz fungující vypadá takto:
var context = new InventorySQL();
var MyItems = context.InventoryItems.Where(l => l.Persons.id > 3).ToList();
var rows = new List<InventoryItemRow>();
foreach (var it in MyItems)
rows.Add(new InventoryItemRow(it));
// Načtení výsledku do Gridu
this.GridView1.DataSource = rows;
this.GridView1.DataBind();
Uvedená ukázka bez problému funguje.Já chci však implementovat fulltextové hledání a na to používám následující konstrukce:
var rows = new List<InventoryItemRow>();
var results = context.ExecuteQuery<InventoryItemRow>(@"Select Name From InventoryItems");
// Foreach hlásí chybu
foreach (var it in results)
rows.Add(new InventoryItemRow(it));
this.GridView1.DataSource = rows;
this.GridView1.DataBind();
Jediné místo, kde to nefunguje je foreach, který v tomto případě hlásí chybu:Error foreach statement cannot operate on variables of type 'object' because 'object' does not contain a public definition for 'GetEnumerator'
Napadá někoho, jak tuto chybku opravit?
Díky.