Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让实体框架在1:1关系上执行连接查询?_C#_Entity Framework - Fatal编程技术网

C# 如何让实体框架在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

我在实体框架中的关系是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.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();