[英]Join with ADO.NET Linq to Entity in C#
我尝试将系统迁移到ADO.NET实体我有3个表
A => (Id, Name, ...)
B => (Id, Domain, ...)
c => (IdA, IdB)
VS.NET生成2个实体A和B,并且两者都引用了另一个表,但是此引用是一个集合。 我需要在表之间建立联接。
from a in A join b in B on a.? equal b.?
where condition
select new { Name = a.Name, Domain = b.Domain };
当问题增长时,我无法按照实体bu中的引用进行操作。 任何帮助?
A和B之间有多对多 。
VS.NET生成2个实体A和B,并且两者都引用了另一个表,但是此引用是一个集合。
EF不需要映射联接表(C),因为它仅包含外键。
使用entites上的导航属性来检索记录 - EF将通过幕后的JOIN表进行静默连接。
查询以获取与A相关的B
var query = ctx.As.Include("Bs").Select(x => x.Bs).ToList(); // List<B>
查询以获取与B相关的A
var query = ctx.Bs.Include("As").Select(x => x.As).ToList(); // List<A>
这称为热切加载 。
另一种方法是使用延迟加载 ,在稍后请求时获取关系(我不推荐这种方法)。
您无需在表之间执行显式联接-使用导航属性。
当问题增长时,我无法按照实体bu中的引用进行操作。 任何帮助?
我不明白这句话 - 也许你可以澄清一下?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.