Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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

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# 具有简单联接的实体框架查询_C#_Entity Framework - Fatal编程技术网

C# 具有简单联接的实体框架查询

C# 具有简单联接的实体框架查询,c#,entity-framework,C#,Entity Framework,我在一个项目中使用EntityFramework6,在创建查询时遇到问题 假设我的类定义如下: public class MyContext : DbContext { public MyContext(string connectionString) : base(connectionString) { } public DbSet<EntityXXX> XXXSet { get; set; } public DbSet<Entity

我在一个项目中使用EntityFramework6,在创建查询时遇到问题

假设我的类定义如下:

public class MyContext : DbContext
{
    public MyContext(string connectionString) : base(connectionString)
    {
    }

    public DbSet<EntityXXX> XXXSet { get; set; }
    public DbSet<EntityYYY> YYYSet { get; set; }
}


public class EntityXXX
{
    public string XXXName { get; set; }
    public int id { get; set; }
    public int YYYid { get; set; }
}

public class EntityYYY
{
    public string YYYName { get; set; }
    public int id { get; set; }
}
公共类MyContext:DbContext
{
公共MyContext(字符串连接字符串):基本(连接字符串)
{
}
公共数据库集XXXSet{get;set;}
公共数据库集YYYSet{get;set;}
}
公共类实体XXX
{
公共字符串XXXName{get;set;}
公共int id{get;set;}
public int yyyyId{get;set;}
}
公共类实体yyy
{
公共字符串名称{get;set;}
公共int id{get;set;}
}
EntityXXX
yyyyid
属性是与其相关的
EntityYYY
实例的“id”

我希望能够用第一列是
XXXName
,第二列是
yyyyname
(从其相关实体yyy)的行填充网格,但我看不出如何做到这一点


我相信这很简单,但我对EF还不熟悉

您需要在EntityXXX上放置虚拟导航属性

public virtual EntityYYY YYY { get; set; }
然后可以进行投影:

db.XXXSet
    .Select(x => new { x.XXXName, YYYName = x.YYY.YYYName })
    .ToList();

这将为您提供所需的列表。

您好,谢谢您的回复。我有点困惑,为什么您的解决方案根本不引用id?你能解释一下吗?我认为他们会以某种方式参与匹配?只要配置正确,它就知道yyyyid是YYY表的外键,因此YYY属性是该外键引用的YYY中的行。它在后台使用id。如果您要查看生成的SQL,它会在外键上连接到YYY表。感谢您的补充意见-谢谢。