gpt4 book ai didi

c# - Entityframework RC1 - MetadataItem.Annotations made internal - 替代方案?

转载 作者:太空宇宙 更新时间:2023-11-03 16:08:34 24 4
gpt4 key购买 nike

我一直在 EF Beta1 中使用以下方法来获取引用给定类型的 PropertyInfo 列表:

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 ) 中,System.Data.Entity.Core.Metadata.Edm.MetadataItem 的 Annotations-Property 已成为内部属性。

我的快速解决方法是使用反射来访问内部属性,但我想知道是否有任何其他解决方案可以在不使用反射 hack 的情况下获取给定 NavigationProperty 的 PropertyInfo。

最佳答案

注释在内部由 MetadataProperty 实例表示。您应该能够从 MetadataItem.MetadataProperties 集合中检索注释。可以分别使用 MetadataItem.AddAnnotationMetadataItem.RemoveAnnotation 添加/删除注释。

关于c# - Entityframework RC1 - MetadataItem.Annotations made internal - 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18377530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com