首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实体框架检查属性是否为导航属性

实体框架检查属性是否为导航属性
EN

Stack Overflow用户
提问于 2012-04-21 02:50:31
回答 2查看 3.9K关注 0票数 5

有没有办法从实体的元数据中查看它的属性是否是导航属性?

我可以通过检查属性是否实现ICollection来确定它是否是实体集合,然后从那里我可以判断它是否是导航属性。

但是如果属性不是实体集合而只是对另一个实体的引用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-21 05:11:24

您可以从MetdataWorkspace获取O-Space EDM实体类型,它具有NavigationProperties属性。下面是一个示例:

代码语言:javascript
运行
复制
var workspace = ((IObjectContextAdapter) ctx).ObjectContext.MetadataWorkspace;
var itemCollection = (ObjectItemCollection)(workspace.GetItemCollection(DataSpace.OSpace));
var entityType = itemCollection.OfType<EntityType>().Single(e => itemCollection.GetClrType(e) == typeof(MyEntity));
foreach(var navigationProperty in entityType.NavigationProperties)
{
    Console.WriteLine(navigationProperty.Name);
}
票数 6
EN

Stack Overflow用户

发布于 2014-01-14 02:02:01

你可以使用另一种方法来解决这个问题。

DbContext :Obs变量是某个Obs实体实例;

代码语言:javascript
运行
复制
foreach (var propertyInfo in found.GetType().GetProperties())
{
    var reference = Context.Entry(found).Member(propertyInfo.Name) as DbReferenceEntry;

    if (reference != null)
    {
        reference.Load();
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10251863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档