繁体   English   中英

使用ADO.NET Linq加入C#中的实体

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM