Я загрузил свой каталог продуктов, используя Entity Framework
Я хотел бы перебрать все элементы, чтобы найти конкретный элемент
структура
Категория -> [Подкатегория ->] Продукт -> параметры
Подкатегория, продукт и опции являются EntityCollection их определенного типа
Все типы являются производными от EntityObject
Допустим, я ищу вариант 12, но не знаю, в каком продукте он находится.
Как я могу перебрать все объекты, чтобы найти опцию 12? У меня есть это до сих пор. в моем EntityObject я знаю, что он еще не рекурсивен, но, в конце концов, когда я узнаю, какие свойства являются коллекциями, я могу подойти к нему неправильно ...
public T Find<T>(Type type, int id) where T : EntityObject
{
//get all properties
PropertyInfo[] properties = this.GetType().GetProperties();
// foreach property find the one
foreach (PropertyInfo oPropertyInfo in properties)
{
// check for type
if (oPropertyInfo.PropertyType == type)
{
PersistentEntity o = oPropertyInfo.GetValue(this, null) as EntityObject;
if (o != null && o.Id == id)
{
return (T)o;
}
}
// if property has childs, is IEnumerable -> recursive
}
return (T)new EntityObject();
}