我们正在项目中使用实体框架,我们正在尝试访问未直接链接到表的其他表。这些表主要是具有默认值的配置表。我知道我们可以使用类似的东西简单地创建一个新的实体“上下文”:
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>
感谢。
答案 0 :(得分:0)
不,您无法从任何给定实体访问DbContext。一个实体应该被视为一个普通的旧CLR对象&#34; (POCO),就编译器而言,与Entity Framework组件没有任何关系。
根据为什么,您希望在处理实体时访问不相关的表,因此存在不同的解决方案。依赖注入,存储库模式,无论你想要什么。