Получение свойств со значениями из Entity с навигацией - PullRequest
1 голос
/ 24 октября 2011

У меня есть класс сущностей данных, скажем, 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.

...