【发布时间】:2020-12-06 19:29:55
【问题描述】:
我有一些可以工作的代码,但我不知道怎么做。我问这个问题是希望有人可以解释它是如何工作的,因为我在网上进行的任何搜索都会给我提供与我所看到的内容不太具体的信息。
我有两个实体。
实体A,实体B。
EntityA 有这个:
public partial class EntityA
{
...
public Guid EntityBGuid { get; set; }
public virtual EntityB EntityB { get; set; }
}
EntityB 有这个:
public partial class EntityB
{
...
public virtual ICollection<EntityA> EntityAs{ get; set; }
}
DatabaseEntities.cs > OnModelCreating() 中的任何地方都没有为任一实体定义关系。
在 SQL 的任何一个表中都没有为关系定义 FK。
所以当我做这样的事情时:
context.LettingProjects.Where(query).Select(s => s.Call).ToList(); //Crash.
但是使用 .Include,我会得到数据:
context.LettingProjects.Include(i => i.Call).Where(query).Select(s => s.Call).ToList(); //Results.
我的问题是这甚至是如何工作的?我不知道 EF 如何在后台处理这个问题,这似乎是一个等待发生的问题。
【问题讨论】:
标签: c# sql entity-framework linq ef-code-first