【发布时间】:2015-08-22 03:35:39
【问题描述】:
我使用 EF Code First 课程。
我有一个名为Request的实体:
public class Request
{
[Key]
public virtual int RequestID { get; set; }
...
}
我需要互相链接Request。
例如:
如果我们有下面定义的 2 个链接:
- RequestID 1 链接到 RequestID 2
- RequestID 1 链接到 RequestID 3
那么...
如果我们询问链接了哪些请求:
- (A) for 1 : 结果是 2,3
- (B) for 2 : 结果是 1,3
- (C) 对于 3:结果是 1,2
说明:
- 对于 (A) 这很容易找到结果,因为链接是“直接”的
- 对于 (B) 和 (C),这有点复杂,因为通过 1 的“路径”检索链接。我不知道我是否清楚。
我的问题:定义链接模型类的最佳方式是什么?之后,如何查询(LINQ)这些模型类以检索如上所示的结果?
一开始,我认为链接模型类如下:(不知道这是不是一个好主意)
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; }
}
【问题讨论】:
标签: linq entity-framework ef-code-first