我有一个场景,我有3个实体
class entityA
{
public Guid Id { get; set; }
public string NameA { get; set; }
}
class entityB
{
public Guid Id { get; set; }
public string NameB { get; set; }
public entityA EntityA { get; set; }
}
class entityC
{
public Guid Id { get; set; }
public Guid HistoryId { get; set; }
}
EntityA和entityB有关系,但entityC与它们中的任何一个都没有关系。
要获取entityA和相关的entityB数据,我可以
db.entityA.Include(x=>x.entityB)
但我不能用entityA和entityC做include()因为entityA和entityC之间没有关系。
只有使用Linq Query语法才能实现:如下:
from A in entityA join C in entityC on A.Id equals C.HistoryId select A
是否有任何方法可以使用Linq Lambda语法包含()或加入entityA和entityC?
答案 0 :(得分:0)
根据您的查询,逻辑上A和C之间存在关系。
您可以将ForeignKey
属性放在C类实体映射中,然后可以在查询中使用Include。
class entityC
{
public Guid Id { get; set; }
public Guid HistoryId { get; set; }
[ForeignKey("HistoryId")]
public entityA EntityA { get; set; }
}