Reflection 通过导航从实体获取具有值的属性
我有一个数据实体类,比如说Customers,它还包含一些其他导航属性,比如Orders,它包含OrdersDetails等等,在每个系统中可能有很多这样的属性 我知道我可以使用反射获得所有客户属性的列表,如果我想使用反射,我也可以使用它们,如下面的示例代码所示Reflection 通过导航从实体获取具有值的属性,reflection,navigation,properties,entity,Reflection,Navigation,Properties,Entity,我有一个数据实体类,比如说Customers,它还包含一些其他导航属性,比如Orders,它包含OrdersDetails等等,在每个系统中可能有很多这样的属性 我知道我可以使用反射获得所有客户属性的列表,如果我想使用反射,我也可以使用它们,如下面的示例代码所示 MyData ctx = new MyData(); Dictionary<string, string> listap = new Dictionary<string, string>(); // first
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());
}
}
MyData ctx=newmydata();
Dictionary listap=新字典();
//第一部分-获取属性
var类型=类型(客户);
var members=在type.GetProperties()中从c中选择c;
foreach(成员中的变量项)
{
添加(item.Name.ToString(),item.PropertyType.Name.ToString());
}
//第二部分-获取属性值
var item2=(来自ctx中的c。客户选择c);
foreach(项目2中的变量项目3)
{
foreach(listap中的var项)
{
Console.WriteLine(item.Key+“”+item.Value+“”+
(typeof(Customers).GetProperty(item.Key).GetValue(item3,null)).ToString());
}
}
我想做的是:
- 首先,您可以通过导航获取与客户连接的所有其他实体类的属性,即使它们离订单和订单详细信息只有几层之遥,并且可以将它们添加到listap dictionary中
- 使用从第一点开始的属性列表,获取属性值,即使它们与客户的距离很小李>