使用LINQ检索链接的实体

时间:2015-08-21 14:21:14

标签: linq entity-framework ef-code-first

我有以下EF Code First课程:

public class Request
{
    [Key]
    public virtual int RequestID { get; set; }
    ...
    public virtual DateTime CreationDate { get; set; }
}

public class RequestLinked
{
    [Key, Column(Order = 0)]
    [ForeignKey("Request")]
    public int RequestID { get; set; }

    [Key, Column(Order = 1)]
    [ForeignKey("RequestRelated")]
    public int RequestRelatedID { get; set; }

    public virtual Request Request { get; set; }
    public virtual Request RequestRelated { get; set; }
}

我需要在多个请求之间建立链接。

例如:让我说我有Request ID 1,2,3。接下来我定义1-2和1-3之间的链接,如下所示:

new RequestLinked { RequestID = 1, RequestRelatedID = 2 } <-- A    
new RequestLinked { RequestID = 1, RequestRelatedID = 3 } <-- B

根据上述实体,我希望能够查看特定请求的相关请求。

例如:

  • 请求1:链接到2&amp; 3
  • 请求2:链接到1&amp; 3
  • 请求3:链接到1&amp; 2

任何想法如何与LINQ建立这些链接?

更新

我将在下面明确说明:

我们说我们搜索ID 3的链接请求。必须检索哪些内容?

  • 我们发现ID 3与ID 1相关联(参见条目A)
  • (现在我们需要搜索ID 1是否有其他链接元素)
  • 我们发现ID 1与ID 2相关(参见条目B)
  • ==&GT;返回1&amp; 2

0 个答案:

没有答案