C# 如何让实体框架在1:1关系上执行连接查询?
我在实体框架中的关系是1:1,如下所示:C# 如何让实体框架在1:1关系上执行连接查询?,c#,entity-framework,C#,Entity Framework,我在实体框架中的关系是1:1,如下所示: public class Channel { public int ID { get; set; } public string Title { get; set; } public ExternalChannel ExternalChannel { get; set; } } 及 数据库模式已正确创建。当我尝试使用以下方式获取频道时: var channels = await dbContext.Channels.ToLi
public class Channel
{
public int ID { get; set; }
public string Title { get; set; }
public ExternalChannel ExternalChannel { get; set; }
}
及
数据库模式已正确创建。当我尝试使用以下方式获取频道时:
var channels = await dbContext.Channels.ToListAsync();
我无法访问ExternalChannel
,因为它没有被检索到。SQL查询未在这些表上使用联接
有没有一种方法可以让实体框架执行连接查询,这样我就可以轻松地访问所有数据?我可以自己做,但我怀疑有更好的方法
谢谢大家的帮助 您没有告诉查询获取
ExternalChannel
数据,请尝试使用Include
告诉EF:
因为默认情况下,它进行延迟加载,因此除非明确告知,否则不会加载相关实体。您可以使用designer中的
Include
属性或在实体本身上使用Include()
在代码中加载它,如
var channels = await dbContext.Channels.Include(x => x.ExternalChannel ).ToListAsync();
您没有告诉查询获取
ExternalChannel
数据,请尝试dbContext.Channels.Include(c=>c.ExternalChannel)
dbContext.Channels.Include(c => c.ExternalChannel)
var channels = await dbContext.Channels.Include(x => x.ExternalChannel ).ToListAsync();