Я использую следующий метод в EF Beta1, чтобы получить список PropertyInfos, которые ссылаются на данный тип:Entityframework RC1 - МетаданныеItem.Annotations сделаны внутренними - альтернативы?
public static List<PropertyInfo> GetReferencingAssociations(Type entityType, ObjectContext objectContext)
{
var result = (from edmType in objectContext.MetadataWorkspace.GetItems<EntityType>(DataSpace.CSpace)
from navigationProperty in edmType.NavigationProperties
let propertyInfo = (PropertyInfo)navigationProperty.Annotations.Single(y => y.Name == "ClrPropertyInfo").Value
where propertyInfo.PropertyType == entityType
select propertyInfo).ToList();
return result;
}
Однако в недавно опубликованном RC1 (see) в Аннотации -свойстве системы .Data.Entity.Core.Metadata.Edm.MetadataItem был сделан внутренним.
Мое быстрое обходное решение - использовать отражение для доступа к внутреннему свойству, но мне интересно, есть ли какое-либо другое решение для получения PropertyInfo данного NavigationProperty без взлома.