实体框架查找外键 [英] Entity framework finding foreign keys

查看:93
本文介绍了实体框架查找外键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在我的实体模型中找到一个实体的所有外键。

I want to find all the foreign keys of an entity in my entity model.

我使用以下方法来获取一个实体的所有属性的列表。 :

I have used the following to get a list of all the properties for an entity:

var workspace = _entities.MetadataWorkspace; 
var entityType = workspace.GetItems<EntityType>(DataSpace.CSpace).FirstOrDefault(e => e.Name == tablename);
var keyNames = entityType.Members.Select(k => k.Name);

有什么办法只能找到那些具有外键关联的属性吗?以及与之关联的引用实体中的该属性?

Is there any way to find only those properties which have foreign key associations? And also that property in the reference entity with which it is associated?

推荐答案

我制定了解决方案:

var fk = _entities.MetadataWorkspace.GetItems<AssociationType>(DataSpace.CSpace).Where(a => a.IsForeignKey);
//check if the table has any foreign constraints for that column
var fkname = fk.Where(x => x.ReferentialConstraints[0].ToRole.Name == tablename).Where(x => x.ReferentialConstraints[0].ToProperties[0].Name == columnname);
//Get the corresponding reference entity column name
var refcol = fkname.Select(x => x.ReferentialConstraints[0].FromProperties[0].Name).First();

这篇关于实体框架查找外键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆