Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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/5/sql/68.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# linq查询上的左连接给出错误_C#_Sql_Database_Linq - Fatal编程技术网

C# linq查询上的左连接给出错误

C# linq查询上的左连接给出错误,c#,sql,database,linq,C#,Sql,Database,Linq,我有一个简单的sql左连接查询,如下所示: select a.firstName+' '+a.lastName Name from account a left join EH_PP_TeacherEvaluations b on a.id=b.EH_PP_TE_TeacherAcctID 我想在林克做这件事 我试着这样做: List<Entity.TeacherEval> list = new List<Entity.TeacherEval>();

我有一个简单的sql左连接查询,如下所示:

select a.firstName+' '+a.lastName Name from account a left join
EH_PP_TeacherEvaluations b
on a.id=b.EH_PP_TE_TeacherAcctID
我想在林克做这件事

我试着这样做:

 List<Entity.TeacherEval> list = new List<Entity.TeacherEval>();
                list = (from a in context.accounts  join b in context.EH_PP_TeacherEvaluations on
                        a equals b.EH_PP_TE_TeacherAcctID into te
                        from b in te.DefaultIfEmpty()
                        select new { a.firstName+' '+a.lastName}
                        ).ToList();
                return list;
在行:

 select new { a.firstName+' '+a.lastName}
请帮帮我

在我犯错误的地方,我是linq的新手

编辑1:

  public class TeacherEval
    {
        public Guid ID { get; set; }
        public DateTime? ProcessStartDate { get; set; }
        public DateTime? ProcessEndDate { get; set; }
        public Guid? AccountID { get; set; }
        public Guid? StatusId { get; set; }

        public TeacherEval() { }

        public TeacherEval(DB.EH_PP_TeacherEvaluation item)
        {
            this.ID = item.EH_PP_TE_TeacherEvalID;
            this.ProcessStartDate = item.EH_PP_TE_TeacherEvalProcessStartDate;
            this.ProcessEndDate = item.EH_PP_TE_TeacherEvalProcessEndDate;
            this.AccountID = item.EH_PP_TE_TeacherAcctID;
            this.StatusId = item.EH_PP_TESRT_TeacherEvalStatusIDEH;
        }

        public DB.EH_PP_TeacherEvaluation ToDB()
        {
            var rec = new DB.EH_PP_TeacherEvaluation();
            rec.EH_PP_TE_TeacherEvalProcessStartDate = this.ProcessStartDate;
            rec.EH_PP_TE_TeacherEvalProcessEndDate = this.ProcessEndDate;
            rec.EH_PP_TE_TeacherAcctID = this.AccountID;
            rec.EH_PP_TESRT_TeacherEvalStatusIDEH = this.StatusId;
            return rec;
        }

        public DB.EH_PP_TeacherEvaluation ToDB(DB.EH_PP_TeacherEvaluation rec)
        {
            rec.EH_PP_TE_TeacherEvalProcessStartDate = this.ProcessStartDate;
            rec.EH_PP_TE_TeacherEvalProcessEndDate = this.ProcessEndDate;
            rec.EH_PP_TE_TeacherAcctID = this.AccountID;
            rec.EH_PP_TESRT_TeacherEvalStatusIDEH = this.StatusId;
            return rec;
        }
    }
public class TeacherEval
{
public string Name {get;set;}
} 
试试这个:

var result= (
        from a in context.accounts
        from b in context.EH_PP_TeacherEvaluations
            .Where(w=>w.EH_PP_TE_TeacherAcctID == a.id).DefaultIfEmpty()
        select new {name= a.firstName+" "+a.lastName}
    ).ToList();
List<Entity.TeacherEval> list =  (from a in context.accounts join b in 
                    context.EH_PP_TeacherEvaluations on
                    a.id equals b.EH_PP_TE_TeacherAcctID into te
                    from b in te.DefaultIfEmpty()
                    select new Entity.TeacherEval { Name = a.firstName+' '+a.lastName}
                    ).ToList();
这将转换为
左连接

编辑

在我看来,你想填充一个新对象。我建议你这样做:

public class ResultDTO
{
    public string Name { get; set; }
}
var result= (from a in context.accounts  
    join b in context.EH_PP_TeacherEvaluations on 
        a.id equals b.EH_PP_TE_TeacherAcctID 
        into te
        from b in te.DefaultIfEmpty()
    select new ResultDTO
    {
        Name= a.firstName+" "+a.lastName
    }
    ).ToList();
List<Entity.TeacherEval> list = (from a in context.accounts  
                                 join b in context.EH_PP_TeacherEvaluations 
                                 on a.id equals b.EH_PP_TE_TeacherAcctID into te
                                 from b in te.DefaultIfEmpty()
                                 select new Entity.TeacherEval 
                                 {Name = a.firstName+" "+a.lastName}).
                                 ToList<Entity.TeacherEval>();
然后查询如下:

public class ResultDTO
{
    public string Name { get; set; }
}
var result= (from a in context.accounts  
    join b in context.EH_PP_TeacherEvaluations on 
        a.id equals b.EH_PP_TE_TeacherAcctID 
        into te
        from b in te.DefaultIfEmpty()
    select new ResultDTO
    {
        Name= a.firstName+" "+a.lastName
    }
    ).ToList();
List<Entity.TeacherEval> list = (from a in context.accounts  
                                 join b in context.EH_PP_TeacherEvaluations 
                                 on a.id equals b.EH_PP_TE_TeacherAcctID into te
                                 from b in te.DefaultIfEmpty()
                                 select new Entity.TeacherEval 
                                 {Name = a.firstName+" "+a.lastName}).
                                 ToList<Entity.TeacherEval>();
这将产生一个
列表

编辑2

你也可以这样做。如果您只需要字符串:

var result= (from a in context.accounts  
        join b in context.EH_PP_TeacherEvaluations on 
            a.id equals b.EH_PP_TE_TeacherAcctID 
            into te
            from b in te.DefaultIfEmpty()
        select a.firstName+" "+a.lastName
        ).ToList();
这将产生一个
列表

尝试以下操作:

var result= (
        from a in context.accounts
        from b in context.EH_PP_TeacherEvaluations
            .Where(w=>w.EH_PP_TE_TeacherAcctID == a.id).DefaultIfEmpty()
        select new {name= a.firstName+" "+a.lastName}
    ).ToList();
List<Entity.TeacherEval> list =  (from a in context.accounts join b in 
                    context.EH_PP_TeacherEvaluations on
                    a.id equals b.EH_PP_TE_TeacherAcctID into te
                    from b in te.DefaultIfEmpty()
                    select new Entity.TeacherEval { Name = a.firstName+' '+a.lastName}
                    ).ToList();
这将转换为
左连接

编辑

在我看来,你想填充一个新对象。我建议你这样做:

public class ResultDTO
{
    public string Name { get; set; }
}
var result= (from a in context.accounts  
    join b in context.EH_PP_TeacherEvaluations on 
        a.id equals b.EH_PP_TE_TeacherAcctID 
        into te
        from b in te.DefaultIfEmpty()
    select new ResultDTO
    {
        Name= a.firstName+" "+a.lastName
    }
    ).ToList();
List<Entity.TeacherEval> list = (from a in context.accounts  
                                 join b in context.EH_PP_TeacherEvaluations 
                                 on a.id equals b.EH_PP_TE_TeacherAcctID into te
                                 from b in te.DefaultIfEmpty()
                                 select new Entity.TeacherEval 
                                 {Name = a.firstName+" "+a.lastName}).
                                 ToList<Entity.TeacherEval>();
然后查询如下:

public class ResultDTO
{
    public string Name { get; set; }
}
var result= (from a in context.accounts  
    join b in context.EH_PP_TeacherEvaluations on 
        a.id equals b.EH_PP_TE_TeacherAcctID 
        into te
        from b in te.DefaultIfEmpty()
    select new ResultDTO
    {
        Name= a.firstName+" "+a.lastName
    }
    ).ToList();
List<Entity.TeacherEval> list = (from a in context.accounts  
                                 join b in context.EH_PP_TeacherEvaluations 
                                 on a.id equals b.EH_PP_TE_TeacherAcctID into te
                                 from b in te.DefaultIfEmpty()
                                 select new Entity.TeacherEval 
                                 {Name = a.firstName+" "+a.lastName}).
                                 ToList<Entity.TeacherEval>();
这将产生一个
列表

编辑2

你也可以这样做。如果您只需要字符串:

var result= (from a in context.accounts  
        join b in context.EH_PP_TeacherEvaluations on 
            a.id equals b.EH_PP_TE_TeacherAcctID 
            into te
            from b in te.DefaultIfEmpty()
        select a.firstName+" "+a.lastName
        ).ToList();
这将产生一个
列表

执行以下操作:

public class ResultDTO
{
    public string Name { get; set; }
}
var result= (from a in context.accounts  
    join b in context.EH_PP_TeacherEvaluations on 
        a.id equals b.EH_PP_TE_TeacherAcctID 
        into te
        from b in te.DefaultIfEmpty()
    select new ResultDTO
    {
        Name= a.firstName+" "+a.lastName
    }
    ).ToList();
List<Entity.TeacherEval> list = (from a in context.accounts  
                                 join b in context.EH_PP_TeacherEvaluations 
                                 on a.id equals b.EH_PP_TE_TeacherAcctID into te
                                 from b in te.DefaultIfEmpty()
                                 select new Entity.TeacherEval 
                                 {Name = a.firstName+" "+a.lastName}).
                                 ToList<Entity.TeacherEval>();
这样做:

public class ResultDTO
{
    public string Name { get; set; }
}
var result= (from a in context.accounts  
    join b in context.EH_PP_TeacherEvaluations on 
        a.id equals b.EH_PP_TE_TeacherAcctID 
        into te
        from b in te.DefaultIfEmpty()
    select new ResultDTO
    {
        Name= a.firstName+" "+a.lastName
    }
    ).ToList();
List<Entity.TeacherEval> list = (from a in context.accounts  
                                 join b in context.EH_PP_TeacherEvaluations 
                                 on a.id equals b.EH_PP_TE_TeacherAcctID into te
                                 from b in te.DefaultIfEmpty()
                                 select new Entity.TeacherEval 
                                 {Name = a.firstName+" "+a.lastName}).
                                 ToList<Entity.TeacherEval>();
试试这个:

var result= (
        from a in context.accounts
        from b in context.EH_PP_TeacherEvaluations
            .Where(w=>w.EH_PP_TE_TeacherAcctID == a.id).DefaultIfEmpty()
        select new {name= a.firstName+" "+a.lastName}
    ).ToList();
List<Entity.TeacherEval> list =  (from a in context.accounts join b in 
                    context.EH_PP_TeacherEvaluations on
                    a.id equals b.EH_PP_TE_TeacherAcctID into te
                    from b in te.DefaultIfEmpty()
                    select new Entity.TeacherEval { Name = a.firstName+' '+a.lastName}
                    ).ToList();
试试这个:

var result= (
        from a in context.accounts
        from b in context.EH_PP_TeacherEvaluations
            .Where(w=>w.EH_PP_TE_TeacherAcctID == a.id).DefaultIfEmpty()
        select new {name= a.firstName+" "+a.lastName}
    ).ToList();
List<Entity.TeacherEval> list =  (from a in context.accounts join b in 
                    context.EH_PP_TeacherEvaluations on
                    a.id equals b.EH_PP_TE_TeacherAcctID into te
                    from b in te.DefaultIfEmpty()
                    select new Entity.TeacherEval { Name = a.firstName+' '+a.lastName}
                    ).ToList();

@愤怒的老虎:
实体.TeacherEval
看起来怎么样?我想返回list@AngryTiger:您想如何将结果映射到
实体。TeacherEval
?@AngryTiger,这样您的
实体中就没有任何
字符串
属性。TeacherEval
,您想如何映射匿名
选择新建{a.firstName+''+a.lastName}
对象与您的
实体。TeacherEval
?好的,我不是“先生”:@AngryTiger:
实体。TeacherEval
看起来怎么样?我想返回list@AngryTiger:您希望如何将结果映射到
实体.TeacherEval
?@AngryTiger,以便在
实体.teacher中没有任何
字符串
属性val
,您想如何映射匿名
选择新的{a.firstName+''+a.lastName}
对象与您的
实体。TeacherEval
?好的,我不是“先生”: