如何获取对实体的父上下文的引用

时间:2016-09-16 15:59:59

标签: c# entity-framework

我们正在项目中使用实体框架,我们正在尝试访问未直接链接到表的其他表。这些表主要是具有默认值的配置表。我知道我们可以使用类似的东西简单地创建一个新的实体“上下文”:

DAL.Models.MSSQL.GestionProjets.GestionProjets_DEVEntities entities = new DAL.Models.MSSQL.GestionProjets.GestionProjets_DEVEntities();

但是,我想知道是否有可能(并且很可能更有效)的方式来做这件事,比如myProjet.ParentEntities(或其他一些属性)。

我似乎无法找到任何相关内容。

编辑:似乎我的问题可能不太清楚。假设我有以下表格:

Client (Id,Name,Address,SendMail)
Contact (Id,IdClient,Name,etc...)
DefaultConfig  (DefaultSendMail,etc...)

在这种情况下,客户和联系人是由FK链接的,所以我很容易做到     客户端cl = GetMyClientInSomeWay(0;     列出联系人= cl.Contact;

或     联系co = GetMyContactInSomeWay();     客户cl = co.Client;

但我决不会做这样的事情     客户端cl = GetMyClientInSomeWay();     cl.SendMail = cl.DefaultConfig.SendMail;

这是我想要最终实现的目标。我知道当我使用已经初始化的DBContext(例如在UI中)并且做一些事情时,我可以找到一些方法     cl.SendMail = EntitiesContext.DefaultConfig.First()。SendMail;

或类似的东西,但当我在对象本身时(例如,在扩展我的实体功能的部分类中),我不能这样做,或者至少我不知道如何。< / p>

感谢。

1 个答案:

答案 0 :(得分:0)

不,您无法从任何给定实体访问DbContext。一个实体应该被视为一个普通的旧CLR对象&#34; (POCO),就编译器而言,与Entity Framework组件没有任何关系。

根据为什么,您希望在处理实体时访问不相关的表,因此存在不同的解决方案。依赖注入,存储库模式,无论你想要什么。