var properties = person.GetType().GetProperties(BindingFlags.DeclaredOnly |
BindingFlags.Public |
BindingFlags.Instance);
上述内容会返回Car
和CarReference
作为属性的一部分,但这些是Person
的外来实体。我想将它们排除在GetProperties
之外。我怎样才能做到这一点?
答案 0 :(得分:0)
EntityFramework
POCO
旨在难以找出什么是关联。这是因为所有信息都在Entity Framework
中,并且这些信息都不在POCO
中(POCO点的类型)。你必须进入EF的EDM课程。
您可以通过
访问我认为的EDMvar objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
var metadata = objectContext.MetadataWorkspace;
但这是我能为你做的最好的......
答案 1 :(得分:0)
嗯,这是一个质朴的解决方案,但它可能足以满足您的需求。
只需排除属于类的属性(这将排除单个导航属性)和泛型类型(这将排除集合属性,例如ICollection<Person>
中的Car
)
var properties = typeof(Items).GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance)
.Where(m => !m.PropertyType.IsClass &&
!m.PropertyType.IsGenericType);