У меня есть класс сущностей данных, скажем, Customer, который также содержит некоторые другие свойства навигации, скажем, Orders, который содержит OrdersDetails и т. Д., Их может быть много в каждой системе.
Я знаю, что могу получить список всех свойств клиентов с помощью рефлексии, а также могу использовать их, если захочу, а также с помощью рефлексии, как в примере кода ниже.
MyData ctx = new MyData();
Dictionary<string, string> listap = new Dictionary<string, string>();
// first part – getting properties
var type = typeof(Customers);
var members = from c in type.GetProperties() select c;
foreach (var item in members)
{
listap.Add(item.Name.ToString(), item.PropertyType.Name.ToString());
}
// second part – getting properties values
var item2 = (from c in ctx.Customers select c);
foreach (var item3 in item2)
{
foreach (var item in listap)
{
Console.WriteLine(item.Key + " " + item.Value + " " +
(typeof(Customers).GetProperty(item.Key).GetValue(item3, null)).ToString());
}
}
Что я хочу сделать, это:
- Сначала можно получить свойства всех других классов сущностей, подключенных к Клиентам с помощью навигации, даже если они находятся на расстоянии нескольких уровней - в этом случае - Orders и OrderDetails и иметь возможность добавить их в словарь listap.
- Получить значения свойств, даже если они находятся далеко от клиентов, используя список свойств с первой точки.
Я могу получить свойства, касающиеся Orders, из первой части, но я не знаю, как использовать их во второй части и как сделать еще один уровень глубже для OrdersDetails.