0
var properties = person.GetType().GetProperties(BindingFlags.DeclaredOnly |
                                                    BindingFlags.Public |
                                                    BindingFlags.Instance);

上面的回报CarCarReference作为属性的一部分,但这些是外国实体Person。我想将它们排除在GetProperties. 我怎样才能做到这一点?

4

2 回答 2

0

EntityFramework POCOs 被设计成很难弄清楚什么是关联。这是因为所有信息都在 中Entity Framework,并且没有任何信息在POCO(POCO 的点)中。您必须进入 EF 中的 EDM 课程。

您可以访问我认为的 EDM... 通过

var objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
var metadata = objectContext.MetadataWorkspace;

但这是我能为你做的最好的...

于 2013-10-14T14:49:30.880 回答
0

好吧,一个质朴的解决方案,但它可能足以满足您的需求。

只排除类属性(这将排除单个导航属性)和泛型类型(这将排除集合属性,例如ICollection<Person>in Car

var properties = typeof(Items).GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance)
                .Where(m => !m.PropertyType.IsClass && 
                            !m.PropertyType.IsGenericType);
于 2013-10-14T15:03:22.797 回答