想象一下我有这门课
public class Case
{
[Key]
[DataMember]
public int CaseId { get; set; }
[DataMember]
public string Title { get; set; }
[DataMember]
public string PublicStatusName { get; set; }
}
基本上,我想获取类似这个查询的结果集
select c.Id, c.Title, sp.Name
from Case c
inner join StatusGrouping sg on sg.InternalStatusId = c.StatusId
inner join StatusPublic sp on sp.PublicStatusId = sg.PublicStatusId
where c.Id = 42
并将其放入上面的类中。
我知道我可以在 EF 中制作导航属性和表达外键关系等。因此,一种(丑陋的)可能性是在 Case 类上只具有一个 StatusGrouping 属性。然后在 StatusGrouping 类上有一个 StatusPublic 属性,然后在我读取数据时让 EF 连接层次结构。
但是 StatusGrouping 表只是一个关系表,在这种情况下我不关心。此外,我不关心 PublicStatusId,我只关心每当我从数据库中获取案例时,我希望将正确的 StatusPublic.Name 映射到 Case 类中的 PublicStatusName 中。
这可能是基本的东西。在 iBATIS(现在的 MyBatis)之类的东西中,这将非常容易。我相信在 EF 中也很容易。
提前致谢!