给定以下(简化的)类:
public class Master
{
public int Id { get; set; }
public string UniqueName { get; set; }
public virtual List<Detail> Details { get; set; }
}
public class Detail
{
public int Id { get; set; }
public string UniqueCode { get; set; }
}
如何使用 Linq to Entities 选择一个特定的 Detail 实例,给 Master 一个 UniqueName,Detail 一个 UniqueCode?
请注意,从 Detail 到 Master 没有导航属性。
如果有导航属性,我想我可以这样做:
Detail detail = (from m in ctx.Master.Include(p=>p.Details)
join d in ctx.Details
on m.Id = d.MasterId
where m.UniqueName == "Something" && d.UniqueCode == "Else"
select d).SingleOrDefault();
如果没有从 Detail 到 Master 的导航属性,如果不首先获取 Master 包括该 Master 的所有 Detail 实例,然后迭代 Detail 实例,我看不到如何继续。如果给定的 Master 有许多 Detail 实例,那可能会非常低效。