相关疑难解决方法(0)

LINQ中的LEFT OUTER JOIN

如何在不使用join-on-equals-into子句的情况下在C#LINQ中对对象执行左外连接?有没有办法用where条款做到这一点?正确的问题:对于内连接很容易,我有这样的解决方案

List<JoinPair> innerFinal = (from l in lefts from r in rights where l.Key == r.Key
                             select new JoinPair { LeftId = l.Id, RightId = r.Id})
Run Code Online (Sandbox Code Playgroud)

但对于左外连接我需要一个解决方案.我是这样的,但它不起作用

List< JoinPair> leftFinal = (from l in lefts from r in rights
                             select new JoinPair { 
                                            LeftId = l.Id, 
                                            RightId = ((l.Key==r.Key) ? r.Id : 0
                                        })
Run Code Online (Sandbox Code Playgroud)

JoinPair是一个类:

public class JoinPair { long leftId; long rightId; }
Run Code Online (Sandbox Code Playgroud)

c# linq join

505
推荐指数
12
解决办法
64万
查看次数

实体框架.嵌套在.Include中

我正在尝试使用EF5代码优先执行数据库查找.基本结构和表格关系如下;

public partial class Member
{
    public int    RecordID {get; set;}
    public string Name     {get; set;}
    ...etc.
    public virtual ICollection<MemberLink> MasterLinks {get; set;}
    public virtual ICollection<MemberLink> SlaveLinks {get; set;}
    public virtual ICollection<Message>    ReceivedMessages {get; set;}
    public virtual ICollection<Message>    SentMessages {get; set;}
}

public partial class MemberLink
{
    public int            RecordID     {get; set;}
    public virtual Member MasterMember {get; set;}
    public virtual Member SlaveMember  {get; set;}
    ...etc.
}

public partial class Message
{
    public int            RecordID  {get; set;}
    public virtual Member Sender …
Run Code Online (Sandbox Code Playgroud)

linq-to-entities entity-framework repository-pattern ef-code-first

9
推荐指数
1
解决办法
1万
查看次数