C#无法从实体类动态返回属性

时间:2016-04-01 17:35:15

标签: c# entity-framework-6

我正在使用实体框架,并且我试图从表示我的数据库中的表的一个实体类的实例返回一个属性。我一直收到null值。它不适用于实体类吗?我在这个网站上发现了一些关于它的帖子,并尽可能地跟着它们,但无济于事。

我有以下内容:

string propName = "name";
var itemID = object.GetType().GetProperty(propName).GetValue(object, null);

如果我用.GetProperty().GetValue()替换.GetProperties()部分,我可以成功查看对象的所有属性,但当我尝试从单个属性获取值时,它会返回{{ 1}}即使该字段中有值。

2 个答案:

答案 0 :(得分:1)

很奇怪......这对我来说很好。我假设在你拥有"对象"的两个地方,你是否正在设置对象变量的名称?

我注意到的一件事是属性名称区分大小写,但如果我在调用GetProperty()时没有匹配大小写,则会得到NullReferenceException,而不是null值。

答案 1 :(得分:0)

试试这个......

var result = object.GetType().InvokeMember(
    "YourPropertyNameHere",
    System.Reflection.BindingFlags.GetProperty,
    null,
    object,
    null);

InvokeMember的信息......

https://msdn.microsoft.com/en-us/library/66btctbe%28v=vs.110%29.aspx

C#反思教程......

http://www.codeproject.com/Articles/17269/Reflection-in-C-Tutorial